?
は、次のC#コードで何を示していますか?質問メソッド呼び出しのマーク構文
var handler = CallBack;
handler?.Invoke();
私はあなたがそれがNULL可能タイプであることを示すためにタイプする前に?
を使用することができることを読みました。これは同じことをしていますか?
?
は、次のC#コードで何を示していますか?質問メソッド呼び出しのマーク構文
var handler = CallBack;
handler?.Invoke();
私はあなたがそれがNULL可能タイプであることを示すためにタイプする前に?
を使用することができることを読みました。これは同じことをしていますか?
これはhandler
がnullの場合、このコードはNullReferenceException
例外をスローしないであろうことを示すnull conditional operator
を使用してC#6のコードです:
Delegate handler = null;
handler?.Invoke();
Delegate handler = null;
if (handler != null)
{
handler.Invoke();
}
なぜこれに応答する、それは非常に明らかにdupですか? –
@Lynn OPは「次のC#コードではどういう意味ですか?」と尋ねました。その質問への答えは、 "それは深いヌルチェックを行うより良い方法です"ですか?それは良い欺瞞(IMO)ではありません。ただ、古い質問に対する1つの可能な答えに過ぎない。 –
@GrantWinney私は、誰かがGoogleからこの質問に来るとき、彼らはもう一つの質問を指し示す道標を見るだろうと主張したいと思います。そして、以前はnull条件付きチェックを行うための簡潔な方法はなかったのですが、今はそこに...「ああ、ハ!一種の瞬間 –
これはC#6で新しく追加された安全ナビゲーション演算子です。SOのどこかに重複が存在する必要があります。 – senshin
いいえ、nullable型の宣言と同じではありません。あなたが見ているのは、C#6の構文です。ヌル条件付き演算子です。 – Jonesopolis
[documentation](https://msdn.microsoft.com/en-us/library/dn986595.aspx) – juharr