Способ получения адреса переменной - это оператор &, аналогичный C ++. Как и в случае с C ++, вы можете сохранить адрес в виде указателя:
class Foo
{
object* _objPtr;
Foo(object obj)
{
unsafe
{
_objPtr = &obj;
}
}
}
Обратите внимание, что любой код, использующий оператор адреса (&) или указатели, должен находиться внутри метода, помеченного как небезопасный, или в блоке небезопасного кода.
Это может быть полезно, если вы хотите повысить производительность, например, не выполняя проверку границ массива. Недостатком (помимо соображений безопасности) является то, что сборка должна быть полностью доверенной для ее выполнения.
Как указывалось, в C # вы на самом деле очень редко храните указатели, вместо этого вы храните ссылки, чтобы сборщик мусора мог работать должным образом. Убедитесь, что вам действительно нужны указатели в вашем коде, прежде чем их использовать!
Подробнее см .: http://msdn.microsoft.com/en-us/library/y31yhkeb.aspx