2009-12-15 32 views

回答

2

AddressOf是一个VB运算符,在C#中不存在。它创建一个过程的委托。委托人稍后可以用不包含过程名称的代码来调用该过程。

C/C++中的指针是内存中地址的表示。您可以创建一个指向函数的指针并使用它来调用该函数,因此在该特定情况下,指针和委托的行为类似。但是,代表不只是函数指针。最重要的区别是代表可以被链接,并且一次调用多个程序。

1

从MSDN样品讲述最故事:

int number; 
int* p = &number; 
Console.WriteLine("Value pointed to by p: {0}", p->ToString()); 

此分配数变量的指针到一个-INT p的地址。

有一些与此相关的内容: 1.您要提取的地址的变量必须初始化。值类型不是问题,这是默认值,但对于引用类型来说这是一个问题。

  1. 在.NET中,变量可以在您没有意识到的情况下移动到内存中。如果你需要处理一个变量的地址,你真的想要使用fixed来将变量固定在RAM中。

  2. &只能应用于变量,而不是常量和值。 (换句话说,你不能使用如int * p = & GetSomeInt()的构建;)

  3. 同样,你的代码必须在不安全模式下,编译它,你将使用外部的管理特征的标志的CLR代码“安全网”。

相关问题