class CI
{
- public long Field;
- public sbyte? FieldNullable;
- public object FieldReference;
+ public long Field;
+ public sbyte? FieldNullable;
+ public object FieldReference;
public int Prop { get; set; }
- public byte? PropNullable { get; set; }
- public string PropReference { get; set; }
+ public byte? PropNullable { get; set; }
+ public object PropReference { get; set; }
- public event Action ev1;
+ public event Action ev1;
}
class C
{
- static int TestProperty ()
- {
- CI ci = null;
- var m1 = ci?.Prop;
- var m2 = ci?.PropNullable;
- var m3 = ci?.PropReference;
+ static int TestProperty ()
+ {
+ CI ci = null;
+
+ var m1 = ci?.Prop;
+ var m2 = ci?.PropNullable;
+ var m3 = ci?.PropReference;
+
+ var m4 = ci?.Prop.ToString () ?? "N";
+ if (m4 != "N")
+ return 1;
+
+ var m5 = ci?.PropNullable.ToString () ?? "N";
+ if (m5 != "N")
+ return 2;
+
+ var m6 = ci?.PropReference.ToString () ?? "N";
+ if (m6 != "N")
+ return 3;
// ci?.Prop = 6;
- ci = new CI ();
- m1 = ci?.Prop;
- m2 = ci?.PropNullable;
- m3 = ci?.PropReference;
+ ci = new CI ();
+ m1 = ci?.Prop;
+ m2 = ci?.PropNullable;
+ m3 = ci?.PropReference;
// ci?.Prop = 5;
// if (ci.Prop != 5)
// var pp1 = ci?.Prop = 4;
// var pp2 = ci?.Prop += 4;
- return 0;
- }
+ return 0;
+ }
- static int TestField ()
- {
- CI ci = null;
- var m1 = ci?.Field;
- var m2 = ci?.FieldNullable;
- var m3 = ci?.FieldReference;
+ static int TestField ()
+ {
+ CI ci = null;
+ var m1 = ci?.Field;
+ var m2 = ci?.FieldNullable;
+ var m3 = ci?.FieldReference;
+ var m4 = ci?.Field.ToString () ?? "N";
+ if (m4 != "N")
+ return 1;
+
+ var m5 = ci?.FieldNullable.ToString () ?? "N";
+ if (m5 != "N")
+ return 2;
+
+ var m6 = ci?.FieldReference.ToString () ?? "N";
+ if (m6 != "N")
+ return 3;
// ci?.Field = 6;
- ci = new CI ();
- m1 = ci?.Field;
- m2 = ci?.FieldNullable;
- m3 = ci?.FieldReference;
+ ci = new CI ();
+ m1 = ci?.Field;
+ m2 = ci?.FieldNullable;
+ m3 = ci?.FieldReference;
// ci?.Field = 5;
// if (ci.Field != 5)
// var pp1 = ci?.Field = 4;
// var pp2 = ci?.Field += 4;
- return 0;
- }
-
- static int TestEvent ()
- {
- CI ci = null;
- ci?.ev1 += null;
-
- ci = new CI ();
- ci?.ev1 += null;
-
- return 0;
- }
-
- static int Main ()
- {
- int res;
-
- res = TestProperty ();
- if (res != 0)
- return 10 + res;
-
- res = TestField ();
- if (res != 0)
- return 20 + res;
-
- res = TestEvent ();
- if (res != 0)
- return 30 + res;
-
- Console.WriteLine ("ok");
- return 0;
- }
+ return 0;
+ }
+/*
+ static int TestEvent ()
+ {
+ CI ci = null;
+ ci?.ev1 += null;
+
+ ci = new CI ();
+ ci?.ev1 += null;
+
+ return 0;
+ }
+*/
+ static int Main ()
+ {
+ int res;
+
+ res = TestProperty ();
+ if (res != 0)
+ return 10 + res;
+
+ res = TestField ();
+ if (res != 0)
+ return 20 + res;
+
+// res = TestEvent ();
+// if (res != 0)
+// return 30 + res;
+
+ Console.WriteLine ("ok");
+ return 0;
+ }
}
\ No newline at end of file