[LoongArch64] Part-5:add loongarch support in some files for LoongArch64. (#21769)
[mono-project.git] / mcs / tests / test-null-operator-02.cs
blobc6dfa614d03de0fc1120726c2d5ac379582a73c1
1 using System;
3 class CI
5 public long Field;
6 public sbyte? FieldNullable;
7 public object FieldReference;
9 public int Prop { get; set; }
10 public byte? PropNullable { get; set; }
11 public object PropReference { get; set; }
13 public event Action ev1;
16 class C
18 static int TestProperty ()
20 CI ci = null;
22 var m1 = ci?.Prop;
23 var m2 = ci?.PropNullable;
24 var m3 = ci?.PropReference;
26 var m4 = ci?.Prop.ToString () ?? "N";
27 if (m4 != "N")
28 return 1;
30 var m5 = ci?.PropNullable.ToString () ?? "N";
31 if (m5 != "N")
32 return 2;
34 var m6 = ci?.PropReference.ToString () ?? "N";
35 if (m6 != "N")
36 return 3;
38 // ci?.Prop = 6;
40 ci = new CI ();
41 m1 = ci?.Prop;
42 m2 = ci?.PropNullable;
43 m3 = ci?.PropReference;
45 // ci?.Prop = 5;
46 // if (ci.Prop != 5)
47 // return 1;
49 // TODO: It's not allowed for now
50 // ci?.Prop += 4;
51 // var pp1 = ci?.Prop = 4;
52 // var pp2 = ci?.Prop += 4;
54 return 0;
57 static int TestField ()
59 CI ci = null;
60 var m1 = ci?.Field;
61 var m2 = ci?.FieldNullable;
62 var m3 = ci?.FieldReference;
63 var m4 = ci?.Field.ToString () ?? "N";
64 if (m4 != "N")
65 return 1;
67 var m5 = ci?.FieldNullable.ToString () ?? "N";
68 if (m5 != "N")
69 return 2;
71 var m6 = ci?.FieldReference.ToString () ?? "N";
72 if (m6 != "N")
73 return 3;
75 // ci?.Field = 6;
77 ci = new CI ();
78 m1 = ci?.Field;
79 m2 = ci?.FieldNullable;
80 m3 = ci?.FieldReference;
82 // ci?.Field = 5;
83 // if (ci.Field != 5)
84 // return 1;
86 // TODO: It's not allowed for now
87 // ci?.Field += 4;
88 // var pp1 = ci?.Field = 4;
89 // var pp2 = ci?.Field += 4;
91 return 0;
94 static int TestEvent ()
96 CI ci = null;
97 ci?.ev1 += null;
99 ci = new CI ();
100 ci?.ev1 += null;
102 return 0;
105 static int Main ()
107 int res;
109 res = TestProperty ();
110 if (res != 0)
111 return 10 + res;
113 res = TestField ();
114 if (res != 0)
115 return 20 + res;
117 // res = TestEvent ();
118 // if (res != 0)
119 // return 30 + res;
121 Console.WriteLine ("ok");
122 return 0;