回答編集履歴
3
テストコードを追加
test
CHANGED
@@ -59,3 +59,37 @@
|
|
59
59
|
|
60
60
|
|
61
61
|
と書きましたがgaya-Kさんの言う通りジェネリックの共変性・反変性による物でした。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
※テストコードを追加
|
66
|
+
|
67
|
+
```C#
|
68
|
+
|
69
|
+
using System;
|
70
|
+
|
71
|
+
using System.Linq;
|
72
|
+
|
73
|
+
using System.Collections.Generic;
|
74
|
+
|
75
|
+
class MT_Report { }
|
76
|
+
|
77
|
+
class MT_ReportPlus : MT_Report { }
|
78
|
+
|
79
|
+
class Class
|
80
|
+
|
81
|
+
{
|
82
|
+
|
83
|
+
static void Main()
|
84
|
+
|
85
|
+
{
|
86
|
+
|
87
|
+
List<MT_Report> baseList = new List<MT_ReportPlus>().Cast<MT_Report>().ToList();
|
88
|
+
|
89
|
+
List<MT_ReportPlus> plusList = baseList.Cast<MT_ReportPlus>().ToList();
|
90
|
+
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
```
|
2
修正
test
CHANGED
@@ -59,7 +59,3 @@
|
|
59
59
|
|
60
60
|
|
61
61
|
と書きましたがgaya-Kさんの言う通りジェネリックの共変性・反変性による物でした。
|
62
|
-
|
63
|
-
こちらの解説がわかりやすかったです。
|
64
|
-
|
65
|
-
[ジェネリックの共変性・反変性](https://ufcpp.net/study/csharp/sp4_variance.html)
|
1
間違い
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
List<AnotherClass>とList<Base>は全く別の型なのでキャストすることはできません。
|
1
|
+
~~List<AnotherClass>とList<Base>は全く別の型なのでキャストすることはできません。~~
|
2
|
+
|
3
|
+
※間違いでした。追記をご覧下さい。
|
2
4
|
|
3
5
|
|
4
6
|
|
@@ -47,3 +49,17 @@
|
|
47
49
|
}
|
48
50
|
|
49
51
|
```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
※追記
|
56
|
+
|
57
|
+
> List<AnotherClass>とList<Base>は全く別の型なのでキャストすることはできません。
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
と書きましたがgaya-Kさんの言う通りジェネリックの共変性・反変性による物でした。
|
62
|
+
|
63
|
+
こちらの解説がわかりやすかったです。
|
64
|
+
|
65
|
+
[ジェネリックの共変性・反変性](https://ufcpp.net/study/csharp/sp4_variance.html)
|