Возможный дубликат:
Как назначить по ссылке поле класса в C #?
Всем привет - подскажите как заставить это работать? В принципе, мне нужен целочисленный ссылочный тип (int * будет работать на C ++)
class Bar
{
private ref int m_ref; // This doesn't exist
public A(ref int val)
{
m_ref = val;
}
public void AddOne()
{
m_ref++;
}
}
class Program
{
static void main()
{
int foo = 7;
Bar b = new Bar(ref foo);
b.AddOne();
Console.WriteLine(foo); // This should print '8'
}
}
Обязательно ли боксировать?
Изменить: Возможно, мне следовало быть более конкретным. Я пишу класс BitAccessor, который просто разрешает доступ к отдельным битам. Вот мое желаемое использование:
class MyGlorifiedInt
{
private int m_val;
...
public BitAccessor Bits {
return new BitAccessor(m_val);
}
}
Использование:
MyGlorifiedInt val = new MyGlorifiedInt(7);
val.Bits[0] = false; // Bits gets a new BitAccessor
Console.WriteLine(val); // outputs 6
Чтобы BitAccessor мог изменять m_val, ему нужна ссылка на него. Но я хочу использовать этот BitAccessor во многих местах, просто ссылаясь на желаемое целое число.
foo
в каком-либо другом классе, время жизни которого не связано сmain
, что произойдет, когдаmain
завершится и фрейм стека, в котором находитсяfoo
жизней, будет уничтожен? - person tzaman   schedule 06.06.2010