--- lang: ja-jp breaks: true --- # C# 後ろのビックリマーク `!` の意味 `null-forgiving 演算子` `(null 免除) 演算子` 2021-09-16 ## ! (null 免除) 演算子 > https://ufcpp.net/blog/2018/12/cs8nrt/ > https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/null-forgiving ```csharp= // 参照に循環があるとき、どうしても片方は最初から有効な参照にできない var a = new Node(null); // やむなくいったん null ``` ```csharp= // 非 null なところに null を渡すのを容赦してもらう var a = new Node(null!); ``` > null-forgiving演算子はあくまで「警告になるコードを無視してもらう」という処理です (そこが許容(able)と容赦(forgive)の差)。 コンパイル結果には何も影響を及ぼさないので、 間違ったコードを書くと普通にNullReferenceExceptionが出るようになります。 (実行時のチェック処理とかは別に何も挿入されません。) ###### tags: `C#` `ビックリマーク` `!` `C# 8.0` `null-forgiving 演算子` `(null 免除) 演算子`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up