public static int Main() { int _int1 = 1; int _int2 = 2; Gen <int> .AssignRef(_int1, ref _int2); Eval(_int1.Equals(_int2)); _int2 = 2; Gen <int> .AssignOut(_int1, out _int2); Eval(_int1.Equals(_int2)); double _double1 = 1; double _double2 = 2; Gen <double> .AssignRef(_double1, ref _double2); Eval(_double1.Equals(_double2)); _double2 = 2; Gen <double> .AssignOut(_double1, out _double2); Eval(_double1.Equals(_double2)); string _string1 = "string1"; string _string2 = "string2"; Gen <string> .AssignRef(_string1, ref _string2); Eval(_string1.Equals(_string2)); _string2 = "string2"; Gen <string> .AssignOut(_string1, out _string2); Eval(_string1.Equals(_string2)); object _object1 = (object)_int1; object _object2 = (object)_string2; Gen <object> .AssignRef(_object1, ref _object2); Eval(_object1.Equals(_object2)); _object2 = (object)_string2; Gen <object> .AssignOut(_object1, out _object2); Eval(_object1.Equals(_object2)); Guid _Guid1 = new Guid(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); Guid _Guid2 = new Guid(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); Gen <Guid> .AssignRef(_Guid1, ref _Guid2); Eval(_Guid1.Equals(_Guid2)); _Guid2 = new Guid(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); Gen <Guid> .AssignOut(_Guid1, out _Guid2); Eval(_Guid1.Equals(_Guid2)); if (result) { Console.WriteLine("Test Passed"); return(100); } else { Console.WriteLine("Test Failed"); return(1); } }