質問編集履歴
2
文の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
下記のTest
|
1
|
+
下記のTest()で、
|
2
2
|
|
3
3
|
IDataを実装するDataを型引数とした`IEnumerable<Data>`型を`IEnumerable<IData>`型に代入できないのはどうしてでしょうか?
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
Dataがクラスであればコンパイルが通りますが、下記のコードのよう
|
7
|
+
Dataがクラスであればコンパイルが通りますが、下記のコードのように構造体の場合はエラーとなるのはなぜでしょうか?
|
8
8
|
|
9
9
|
おそらく、構造体は値型でinterfaceは参照ということが原因かと思いますが、
|
10
10
|
|
11
|
-
IData型の変数にDataを代入するのは可能で、`IEnumerable<IData>`に`IEnumerable<Data>`を代入するのは不可能という点が理解できません。
|
11
|
+
Test2()のようにIData型の変数にDataを代入するのは可能で、`IEnumerable<IData>`に`IEnumerable<Data>`を代入するのは不可能という点が理解できません。
|
12
12
|
|
13
13
|
|
14
14
|
|
@@ -42,6 +42,14 @@
|
|
42
42
|
|
43
43
|
}
|
44
44
|
|
45
|
+
public void Test2()
|
46
|
+
|
47
|
+
{
|
48
|
+
|
49
|
+
IData data = new Data();
|
50
|
+
|
51
|
+
}
|
52
|
+
|
45
53
|
}
|
46
54
|
|
47
55
|
|
1
わかりやすく
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
-
下記の
|
1
|
+
下記のTestメソッドで、
|
2
2
|
|
3
|
+
IDataを実装するDataを型引数とした`IEnumerable<Data>`型を`IEnumerable<IData>`型に代入できないのはどうしてでしょうか?
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
Dataがクラスであればコンパイルが通りますが、下記のコードのような構造体の場合はエラーとなるのはなぜでしょうか?
|
8
|
+
|
9
|
+
おそらく、構造体は値型でinterfaceは参照ということが原因かと思いますが、
|
10
|
+
|
3
|
-
|
11
|
+
IData型の変数にDataを代入するのは可能で、`IEnumerable<IData>`に`IEnumerable<Data>`を代入するのは不可能という点が理解できません。
|
12
|
+
|
13
|
+
|
4
14
|
|
5
15
|
何卒、よろしくお願いいたします。
|
6
16
|
|