質問編集履歴

3

2017/08/24 09:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -23,6 +23,28 @@
23
23
 
24
24
 
25
25
  ```C#
26
+
27
+ clas SampleClass
28
+
29
+ {
30
+
31
+ public int x;
32
+
33
+ public int y;
34
+
35
+
36
+
37
+ overrode public string ToString()
38
+
39
+ {
40
+
41
+ return x.ToString() + y.ToString();
42
+
43
+ }
44
+
45
+ }
46
+
47
+
26
48
 
27
49
  void Bar<T>(T a)
28
50
 
@@ -54,7 +76,7 @@
54
76
 
55
77
  myDelegate<string>("sssss");
56
78
 
57
- myDelegate<Object>(null);
79
+ myDelegate<SampleClass>(new SampleClass{x=1, y=1});
58
80
 
59
81
  }
60
82
 
@@ -77,3 +99,9 @@
77
99
  上記のようなことをするための良い方法はないでしょうか。
78
100
 
79
101
  よろしくお願い致します。
102
+
103
+
104
+
105
+ <補足>
106
+
107
+ 質問がよくなかったので、`SampleClass`というのを追加しました。

2

コードを修正

2017/08/24 09:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ```C#
12
12
 
13
- delegate void BarDelegate<T>(T arg);
13
+ delegate void MyDelegate<T>(T arg);
14
14
 
15
15
  ```
16
16
 
@@ -46,15 +46,15 @@
46
46
 
47
47
  // これはコンパイルが通らない
48
48
 
49
- void Foo(BarDelegate barDelegate)
49
+ void Foo(MyDelegate myDelegate)
50
50
 
51
51
  {
52
52
 
53
- barDelegate<int>(1);
53
+ myDelegate<int>(1);
54
54
 
55
- barDelegate<string>("sssss");
55
+ myDelegate<string>("sssss");
56
56
 
57
- barDelegate<Object>(null);
57
+ myDelegate<Object>(null);
58
58
 
59
59
  }
60
60
 

1

コードを詳細にした

2017/08/23 13:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,26 @@
24
24
 
25
25
  ```C#
26
26
 
27
+ void Bar<T>(T a)
28
+
29
+ {
30
+
31
+ Console.WriteLine(a.ToString());
32
+
33
+ }
34
+
35
+
36
+
37
+ void Baz<T>(T a)
38
+
39
+ {
40
+
41
+ Console.WriteLine(a.GetType().ToString());
42
+
43
+ }
44
+
45
+
46
+
27
47
  // これはコンパイルが通らない
28
48
 
29
49
  void Foo(BarDelegate barDelegate)
@@ -38,6 +58,18 @@
38
58
 
39
59
  }
40
60
 
61
+
62
+
63
+ void Hoge()
64
+
65
+ {
66
+
67
+ Foo(Bar);
68
+
69
+ Foo(Baz);
70
+
71
+ }
72
+
41
73
  ```
42
74
 
43
75