回答編集履歴
4
リンク修正
answer
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
```
|
29
29
|
---
|
30
30
|
|
31
|
-
もしくはC# 9.0で実装された [共変戻り値型](https://
|
31
|
+
もしくはC# 9.0で実装された [共変戻り値型](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/proposals/csharp-9.0/covariant-returns) を利用するか。
|
32
32
|
環境を作っていないのでコンパイルしていませんが、恐らく下記のような書き方ができると思います。
|
33
33
|
```C#
|
34
34
|
public class Model2 : Model1
|
3
コード修正
answer
CHANGED
@@ -33,12 +33,12 @@
|
|
33
33
|
```C#
|
34
34
|
public class Model2 : Model1
|
35
35
|
{
|
36
|
-
public virtual IOption Option{ get;
|
36
|
+
public virtual IOption Option{ get; }
|
37
37
|
}
|
38
38
|
|
39
39
|
public class Model3 : Model2
|
40
40
|
{
|
41
|
-
public override Option2 Option{ get;
|
41
|
+
public override Option2 Option{ get; }
|
42
42
|
public void Function()
|
43
43
|
{
|
44
44
|
var prop = Option.Option2Prop;
|
2
コード修正
answer
CHANGED
@@ -33,12 +33,12 @@
|
|
33
33
|
```C#
|
34
34
|
public class Model2 : Model1
|
35
35
|
{
|
36
|
-
public virtual IOption Option{ get; set; }
|
36
|
+
public virtual IOption Option{ get; set; }
|
37
37
|
}
|
38
38
|
|
39
39
|
public class Model3 : Model2
|
40
40
|
{
|
41
|
-
public override Option2 Option{ get; set; }
|
41
|
+
public override Option2 Option{ get; set; }
|
42
42
|
public void Function()
|
43
43
|
{
|
44
44
|
var prop = Option.Option2Prop;
|
1
コード修正
answer
CHANGED
@@ -33,12 +33,12 @@
|
|
33
33
|
```C#
|
34
34
|
public class Model2 : Model1
|
35
35
|
{
|
36
|
-
public virtual IOption Option;
|
36
|
+
public virtual IOption Option{ get; set; };
|
37
37
|
}
|
38
38
|
|
39
39
|
public class Model3 : Model2
|
40
40
|
{
|
41
|
-
public override Option2 Option;
|
41
|
+
public override Option2 Option{ get; set; };
|
42
42
|
public void Function()
|
43
43
|
{
|
44
44
|
var prop = Option.Option2Prop;
|