1
1
// Licensed to the .NET Foundation under one or more agreements.
2
2
// The .NET Foundation licenses this file to you under the MIT license.
3
3
4
+ using System ;
4
5
using System . Diagnostics ;
5
6
6
7
namespace TestNFApp
@@ -21,58 +22,58 @@ class ClassDoThis : IDo
21
22
{
22
23
public void Do1 ( )
23
24
{
24
- Debug . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
25
+ Console . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
25
26
}
26
27
27
28
public void Do2 ( )
28
29
{
29
- Debug . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
30
+ Console . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
30
31
}
31
32
32
33
public void DoThis1 ( )
33
34
{
34
- Debug . WriteLine ( $ "{ nameof ( DoThis1 ) } ") ;
35
+ Console . WriteLine ( $ "{ nameof ( DoThis1 ) } ") ;
35
36
}
36
37
37
38
public void DoThis2 ( )
38
39
{
39
- Debug . WriteLine ( $ "{ nameof ( DoThis2 ) } ") ;
40
+ Console . WriteLine ( $ "{ nameof ( DoThis2 ) } ") ;
40
41
}
41
42
}
42
43
43
44
class ClassDoInt : IDo
44
45
{
45
46
public void Do1 ( )
46
47
{
47
- Debug . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
48
+ Console . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
48
49
}
49
50
50
51
public void Do2 ( )
51
52
{
52
- Debug . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
53
+ Console . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
53
54
}
54
55
}
55
56
56
57
class ClassDoThatInt : IDo , IDoThat
57
58
{
58
59
public void Do1 ( )
59
60
{
60
- Debug . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
61
+ Console . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
61
62
}
62
63
63
64
public void Do2 ( )
64
65
{
65
- Debug . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
66
+ Console . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
66
67
}
67
68
68
69
public void DoThat1 ( )
69
70
{
70
- Debug . WriteLine ( $ "{ nameof ( DoThat1 ) } ") ;
71
+ Console . WriteLine ( $ "{ nameof ( DoThat1 ) } ") ;
71
72
}
72
73
73
74
public void DoThat2 ( )
74
75
{
75
- Debug . WriteLine ( $ "{ nameof ( DoThat2 ) } ") ;
76
+ Console . WriteLine ( $ "{ nameof ( DoThat2 ) } ") ;
76
77
}
77
78
78
79
}
@@ -81,25 +82,25 @@ class ClassDoThisAndThat : ClassDoThis, IDoThat
81
82
{
82
83
public void DoThat1 ( )
83
84
{
84
- Debug . WriteLine ( $ "{ nameof ( DoThat1 ) } ") ;
85
+ Console . WriteLine ( $ "{ nameof ( DoThat1 ) } ") ;
85
86
}
86
87
87
88
public void DoThat2 ( )
88
89
{
89
- Debug . WriteLine ( $ "{ nameof ( DoThat2 ) } ") ;
90
+ Console . WriteLine ( $ "{ nameof ( DoThat2 ) } ") ;
90
91
}
91
92
}
92
93
93
94
public class ClassDoString : IDo
94
95
{
95
96
public void Do1 ( )
96
97
{
97
- Debug . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
98
+ Console . WriteLine ( $ "{ nameof ( Do1 ) } ") ;
98
99
}
99
100
100
101
public void Do2 ( )
101
102
{
102
- Debug . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
103
+ Console . WriteLine ( $ "{ nameof ( Do2 ) } ") ;
103
104
}
104
105
}
105
106
@@ -118,22 +119,22 @@ public void InstanceGenericDoOne(T t)
118
119
{
119
120
T v = t ;
120
121
121
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoOne ) } --> { v } is <{ v . GetType ( ) } >") ;
122
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoOne ) } --> { v } is <{ v . GetType ( ) } >") ;
122
123
}
123
124
124
125
public void InstanceGenericDoTwo < T2 > ( T p1 , T2 p2 )
125
126
{
126
127
T v1 = p1 ;
127
128
T2 v2 = p2 ;
128
129
129
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoTwo ) } <{ v2 . GetType ( ) } > --> { v1 } ,{ v2 } is <{ v1 . GetType ( ) } ,{ v2 . GetType ( ) } >") ;
130
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoTwo ) } <{ v2 . GetType ( ) } > --> { v1 } ,{ v2 } is <{ v1 . GetType ( ) } ,{ v2 . GetType ( ) } >") ;
130
131
}
131
132
132
133
public void InstanceGenericDoOneOther < T1 > ( T1 t )
133
134
{
134
135
T1 v1 = t ;
135
136
136
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoOneOther ) } <{ v1 . GetType ( ) } > --> { v1 } is <{ v1 . GetType ( ) } >") ;
137
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoOneOther ) } <{ v1 . GetType ( ) } > --> { v1 } is <{ v1 . GetType ( ) } >") ;
137
138
}
138
139
}
139
140
@@ -148,7 +149,7 @@ public void InstanceGenericDoOne(T t)
148
149
{
149
150
T v = t ;
150
151
151
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoOne ) } --> { v } is <{ typeof ( T ) . FullName } >") ;
152
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoOne ) } --> { v } is <{ typeof ( T ) . FullName } >") ;
152
153
}
153
154
154
155
public void InstanceGenericDoTwo < T2 > ( T p1 , T1 p2 , T2 p3 )
@@ -157,23 +158,23 @@ public void InstanceGenericDoTwo<T2>(T p1, T1 p2, T2 p3)
157
158
T1 v2 = p2 ;
158
159
T2 v3 = p3 ;
159
160
160
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoTwo ) } <{ v3 . GetType ( ) } > --> { v1 } ,{ v2 } ,{ v3 } is <{ v1 . GetType ( ) } ,{ v2 . GetType ( ) } ,{ v3 . GetType ( ) } >") ;
161
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoTwo ) } <{ v3 . GetType ( ) } > --> { v1 } ,{ v2 } ,{ v3 } is <{ v1 . GetType ( ) } ,{ v2 . GetType ( ) } ,{ v3 . GetType ( ) } >") ;
161
162
}
162
163
163
164
public void InstanceGenericDoOneOther < T2 > ( T1 p1 , T2 p2 )
164
165
{
165
166
T1 v1 = p1 ;
166
167
T2 v2 = p2 ;
167
168
168
- Debug . WriteLine ( $ "{ nameof ( InstanceGenericDoOneOther ) } <{ v1 . GetType ( ) } > --> { v1 } ,{ v2 } is <{ typeof ( T1 ) . FullName } ,{ typeof ( T2 ) . FullName } >") ;
169
+ Console . WriteLine ( $ "{ nameof ( InstanceGenericDoOneOther ) } <{ v1 . GetType ( ) } > --> { v1 } ,{ v2 } is <{ typeof ( T1 ) . FullName } ,{ typeof ( T2 ) . FullName } >") ;
169
170
}
170
171
}
171
172
172
173
public class GenericClassTests
173
174
{
174
175
private static void StaticGenericDo < T1 , T2 > ( T1 val , T2 val2 ) where T1 : IDo where T2 : IDo
175
176
{
176
- Debug . WriteLine ( $ ">> { nameof ( StaticGenericDo ) } <{ val . GetType ( ) } ,{ val2 . GetType ( ) } >") ;
177
+ Console . WriteLine ( $ ">> { nameof ( StaticGenericDo ) } <{ val . GetType ( ) } ,{ val2 . GetType ( ) } >") ;
177
178
178
179
val . Do1 ( ) ;
179
180
val . Do2 ( ) ;
@@ -183,7 +184,7 @@ private static void StaticGenericDo<T1, T2>(T1 val, T2 val2) where T1 : IDo wher
183
184
184
185
private static void StaticGenericDoThisAndThat < T1 , T2 > ( T1 val , T2 val2 ) where T1 : ClassDoThis , IDo where T2 : ClassDoThatInt
185
186
{
186
- Debug . WriteLine ( $ ">> { nameof ( StaticGenericDoThisAndThat ) } <{ val . GetType ( ) } ,{ val2 . GetType ( ) } >") ;
187
+ Console . WriteLine ( $ ">> { nameof ( StaticGenericDoThisAndThat ) } <{ val . GetType ( ) } ,{ val2 . GetType ( ) } >") ;
187
188
188
189
val . DoThis1 ( ) ;
189
190
val . DoThis2 ( ) ;
@@ -193,42 +194,58 @@ private static void StaticGenericDoThisAndThat<T1, T2>(T1 val, T2 val2) where T1
193
194
194
195
public GenericClassTests ( )
195
196
{
196
- Debug . WriteLine ( "++++++++++++++++++++" ) ;
197
- Debug . WriteLine ( "++ Generics Tests ++" ) ;
198
- Debug . WriteLine ( "++++++++++++++++++++" ) ;
199
- Debug . WriteLine ( "" ) ;
197
+ Console . WriteLine ( "++++++++++++++++++++" ) ;
198
+ Console . WriteLine ( "++ Generics Tests ++" ) ;
199
+ Console . WriteLine ( "++++++++++++++++++++" ) ;
200
+ Console . WriteLine ( "" ) ;
200
201
201
202
203
+ Console . WriteLine ( "++ ClassDoString ++" ) ;
204
+
202
205
var other = new ClassDoString ( ) ;
203
206
other . Do1 ( ) ;
204
207
other . Do2 ( ) ;
205
208
209
+ Console . WriteLine ( "++ GenericClass<int> ++" ) ;
210
+
206
211
var gc1 = new GenericClass < int > ( ) ;
207
212
gc1 . NoGenerics ( ) ;
208
213
gc1 . InstanceGenericDoOne ( 1 ) ;
209
214
gc1 . InstanceGenericDoTwo ( 1 , "TWO" ) ;
210
215
gc1 . InstanceGenericDoOneOther ( false ) ;
211
216
gc1 . GenericField = 10 ;
212
217
218
+ Console . WriteLine ( "++ AnotherGenericClass<byte, bool> ++" ) ;
219
+
213
220
var agc1 = new AnotherGenericClass < byte , bool > ( ) ;
214
221
agc1 . InstanceGenericDoOne ( 22 ) ;
215
222
agc1 . InstanceGenericDoTwo ( 33 , false , "NINE" ) ;
216
223
agc1 . InstanceGenericDoOneOther ( true , 44 ) ;
217
224
agc1 . GenericField = 11 ;
218
225
agc1 . AnotherGenericField = false ;
219
226
227
+ Console . WriteLine ( "++ GenericClass<string> ++" ) ;
228
+
220
229
var gc2 = new GenericClass < string > ( ) ;
221
230
gc2 . InstanceGenericDoOne ( "ONE" ) ;
222
231
gc2 . InstanceGenericDoTwo ( "ONE" , "TWO" ) ;
223
232
gc2 . InstanceGenericDoOneOther ( 33.33 ) ;
224
233
gc2 . GenericField = "TEN" ;
225
234
235
+ Console . WriteLine ( "++ StaticGenericDo Int and String ++" ) ;
236
+
226
237
StaticGenericDo ( new ClassDoInt ( ) , new ClassDoString ( ) ) ;
227
238
239
+ Console . WriteLine ( "++ StaticGenericDo String and Int ++" ) ;
240
+
228
241
StaticGenericDo ( new ClassDoString ( ) , new ClassDoInt ( ) ) ;
229
242
243
+ Console . WriteLine ( "++ StaticGenericDoThisAndThat This and That ++" ) ;
244
+
230
245
StaticGenericDoThisAndThat ( new ClassDoThis ( ) , new ClassDoThatInt ( ) ) ;
231
246
247
+ Console . WriteLine ( "++ StaticGenericDoThisAndThat ThisAndThat and ThatInt ++" ) ;
248
+
232
249
StaticGenericDoThisAndThat ( new ClassDoThisAndThat ( ) , new ClassDoThatInt ( ) ) ;
233
250
}
234
251
}
0 commit comments