1
FirstOrDefaultから公開されていないnull可能な参照型情報
C#8.0 の新しいnull許容参照型機能をテストしたかったのです。 .NET Core 3.0を対象とする新しいプロジェクトを開始し、.csprojファイルでnull許容の参照型を有効にして、コーディングを開始しました。私はaを取り、その配列に等しいstring[]を返す単純なリストを作成しました。ここで、配列に実際に存在するかどうかは定かでないので、を使用します。これは、一致が見つからない場合にデフォルトになるはずです。stringabcabcFirstOrDefault()null using System; using System.Linq; public string FindArgument(string[] args) { var arg = args.FirstOrDefault(x => x == "abc"); return arg; } 私のメソッドはを返しますstring。これはnullにできないタイプになっているはずです。nullFirstOrDefault()が返される可能性があるのでnull、上記のメソッドはnull の可能性があるarg変数を返すときに警告を生成することを期待します。ありません。 FirstOrDefault()Visual Studioでのシグネチャを見ると、その理由は明らかです。メソッドが返すのはstring、string?私が期待するnullに対応する同等のものではありません。 以下のメソッド本体を使用すると、期待した警告が表示されます。 var arg = args.Contains("abc") ? "abc" : null; return arg; (この例のSystem.Linq)システムライブラリは、.NET Core 3.0を対象とする場合、null可能性情報を実際に公開しませんか?