タグ付けされた質問 「c#-8.0」

C#言語のバージョン8.0での開発に関連する問題の場合。このバージョンでは、null許容の参照型、デフォルトのインターフェイスメソッド、非同期列挙型、その他の機能と拡張機能が追加されています。

3
ORMでDTOクラスを使用する場合のC#8のnull可能な参照型
以下に示すように、データ転送オブジェクト(DTO)クラスを持つプロジェクトでこの機能をアクティブにしました。 public class Connection { public string ServiceUrl { get; set; } public string? UserName { get; set; } public string? Password { get; set; } //... others } しかし、私はエラーを受け取ります: CS8618:null可能ではないプロパティ 'ServiceUrl'は初期化されていません。プロパティをnull許容として宣言することを検討してください。 これはDTOクラスなので、プロパティを初期化していません。これは、プロパティがnullでないことを保証するためにクラスを初期化するコードの責任です。 たとえば、呼び出し元は次のことができます。 var connection = new Connection { ServiceUrl=some_value, //... } 私の質問:C#8のnull可能性コンテキストが有効になっているときに、DTOクラスでこのようなエラーを処理する方法は?

2
C#は `notnull`型をnull可能にできません
私はラストResultやハスケルに似たタイプを作成しようとしていますが、Eitherこれはここまでです: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError> Value; public Result(TResult result) => Value = result; public Result(TError error) => Value = error; public static implicit operator Result<TResult, TError>(TResult result) => new Result<TResult, TError>(result); public static implicit operator Result<TResult, TError>(TError …

2
構造体のクラスメンバーを持つC#8でnullの逆参照の可能性に関する警告が表示されないのはなぜですか?
null可能な参照型を有効にしたC#8プロジェクトで、次のコードを使用すると、null逆参照の可能性に関する警告が表示されるはずですが、表示されません。 public class ExampleClassMember { public int Value { get; } } public struct ExampleStruct { public ExampleClassMember Member { get; } } public class Program { public static void Main(string[] args) { var instance = new ExampleStruct(); Console.WriteLine(instance.Member.Value); // expected warning here about possible null dereference } } 場合はinstanceデフォルトコンストラクタで初期化され、instance.Memberデフォルト値に設定されてExampleClassMemberいます、null。したがって、実行時にinstance.Member.ValueがスローさNullReferenceExceptionれます。C#8のnull可能性の検出を理解しているので、この可能性についてコンパイラーの警告が表示されるはずですが、わかりません。何故ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.