teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

リンク修正

2020/12/04 07:27

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -28,7 +28,7 @@
28
28
  ```
29
29
  ---
30
30
 
31
- もしくはC# 9.0で実装された [共変戻り値型](https://qiita.com/RyotaMurohoshi/items/64a544c3a2954e136f08) を利用するか。
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

コード修正

2020/12/04 07:27

投稿

BluOxy
BluOxy

スコア2663

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; }
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; }
42
42
  public void Function()
43
43
  {
44
44
  var prop = Option.Option2Prop;

2

コード修正

2020/12/04 06:51

投稿

BluOxy
BluOxy

スコア2663

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

コード修正

2020/12/04 06:44

投稿

BluOxy
BluOxy

スコア2663

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;