この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 19482|答える: 2

[出典] C# 8.0はヌル参照型として扱えます

[リンクをコピー]
2022年3月26日 16:40:21に投稿 | | | |
C# 8.0以前は、すべての参照型がnullできました。 ヌル参照型は、C# 8.0で導入された機能群を指し、以下に使用できます。コードが実行時にスローを引き起こす可能性を最小限に抑える。 nullable参照型には、これらの例外を回避するための3つの機能があり、その中には参照型を明示的にnullableとしてマークする機能が含まれます。

  • 変数が参照を解除する前にヌルかどうかを判断するための最適化された静的フロー解析。
  • APIに注釈を付け、Stream Analyticsがnull状態を判定するための属性です。
  • 変数の注釈は、開発者が変数の期待されるnull状態を明示的に宣言するために使えるものです。


既存プロジェクトではヌルステート解析や変数注釈はデフォルトで無効とされており、すべての参照型は依然としてnull可能です。 .NET 6以降は、新しいプロジェクトではこれらの機能がデフォルトで有効化されます。

ドキュメンテーション:ハイパーリンクのログインが見えます。

nullになりうる参照型が何をするのかアプリケーションが実行時にSystem.NullReferenceExceptionを出す可能性を最小限に抑えましょう

私が.NET 6で開発しているプロジェクトで、新しいプロパティのNameプロパティを作成し、次の警告が表示されます。

コンストラクタを終了する際、非nullableプロパティ「Name」はnullでない値を含む必要があります。 性質を を は零と宣言することを考えます。


警告ですが、とてもイライラします! この警告をどうやって直せばいいですか? 割り当てのデフォルト値は空文字列で、コードは以下の通りです:

つまり、プロパティが手動で割り当てられていない場合、デフォルトの値は空文字列となります。

局所変数を使用する場合、種類はストリングですか? 警告も発生させることがあります、下図に示されているように:



解決策として、変数がnullかどうかを判断してから使う必要があります。もしnullなら、下のコードを実行しないでください。そう思うなら変数は決してnullであってはなりませんは使用可能です。ArgumentNullException.ThrowIfNull(assemblyFullName); 警告も削除可能です! つまり、変数がnullであれば、実行中に直接例外をスローします!

概要:C# 8.0でこの機能が導入されましたが、個人的には開発者の厳密さを高め、低レベルのミスを避けるためだと感じています。

nullになりうる他の方法解については、以下を参照してください:ハイパーリンクのログインが見えます。





先の:現在のプロジェクトのGitのリモートアドレスを照会してください
次に:ASP.NET コア(12)フロントエンドJS、CSSバンドル、圧縮
2022年3月26日 20:57:32 に投稿 |
学ぶために
2022年3月28日 08:23:47に投稿 |
学びに来て
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com