, . , , . , .
. T :
class BoxedT
{
T t;
public BoxedT(T value) { t = value; }
public static implicit operator T(BoxedT boxed) { return boxed.t; }
}
( , .)
bar = value;
bar = new BoxedT(value);
, . .
BoxedT.BoxedT.t value.BoxedT bar.
3 , bar , , . . , 3 2.
, bar , BoxedT.t . BoxedT, Boxed.t, T, 2. , default(T).
, , ! , bar , bar. # 4, 10.5.3, , bar volatile. ( , bar , , .)