「CS8601 Null 参照代入の可能性があります」警告
1 2 3 4 5 6 7 8 9 10 11 |
public class UserRepository { private readonly string _connectionString; public UserRepository(IConfiguration configuration) { _connectionString = configuration.GetConnectionString("DefaultConnection"); } } |
上記ソースコードだと下記警告が発生する。
1 2 3 4 |
警告 (アクティブ) CS8601 Null 参照代入の可能性があります。 警告 (アクティブ) CS8618 null 非許容の フィールド '_connectionString' には、コンストラクターの終了時に null 以外の値が入っていなければなりません。'required' 修飾子を追加するか、フィールド を Null 許容として宣言することを検討してください。 |

stringに?を付与し、nullになるケースがあることを明示することで解消する。
1 2 3 |
private readonly string _connectionString; |
1 2 3 |
private readonly string? _connectionString; |

「CS8603 Null 参照戻り値である可能性があります。」警告
1 2 3 4 5 6 7 8 9 10 |
public User GetUserById(int id) { using (var connection = GetConnection()) { connection.Open(); return connection.QueryFirstOrDefault<User>("SELECT * FROM Users WHERE Id = @Id", new { Id = id }); } } |
上記ソースコードだと下記警告が発生する。

1 2 3 |
警告 (アクティブ) CS8603 Null 参照戻り値である可能性があります。 |
戻り値のクラスに?を付与し、nullになるケースがあることを明示することで解消する。
1 2 3 |
public User GetUserById(int id) |
1 2 3 |
public User? GetUserById(int id) |

コメント