public static void Main() { TestParameterPassing2 obj = new TestParameterPassing2(); Func(obj); Assert(1, Count); Assert(1, GC.ReferenceCount(obj)); }
private static void Func2( TestParameterPassing2 obj ) { Assert( 2, GC.ReferenceCount(obj) ); TestParameterPassing2 o2 = obj; Assert( 3, GC.ReferenceCount(o2) ); obj = null; Assert( 2, GC.ReferenceCount(o2) ); }
public static void Main() { TestParameterPassing2 obj = new TestParameterPassing2(); Func( obj ); Assert( 1, Count ); Assert( 1, GC.ReferenceCount(obj) ); }
private static void Func2(TestParameterPassing2 obj) { Assert(2, GC.ReferenceCount(obj)); TestParameterPassing2 o2 = obj; Assert(3, GC.ReferenceCount(o2)); obj = null; Assert(2, GC.ReferenceCount(o2)); }
private static void Func(TestParameterPassing2 obj) { Assert(2, GC.ReferenceCount(obj)); obj = new TestParameterPassing2(); Assert(1, GC.ReferenceCount(obj)); Assert(2, Count); Func2(obj); }
private static void Func( TestParameterPassing2 obj ) { Assert( 2, GC.ReferenceCount(obj) ); obj = new TestParameterPassing2(); Assert( 1, GC.ReferenceCount(obj) ); Assert( 2, Count ); Func2( obj ); }