:C#で値以外の型をnull可能にする方法を教えてください。たとえば
public class Stereo {
public Speaker? LeftSpeaker;
public int? Volume;
}
int?
が正常に動作しますが、私はスピーカーNULL可能を行うことができないんです。これはGoogleにとって驚くほど難しいことではありますが、私はこれが簡単だと思っていました...
:C#で値以外の型をnull可能にする方法を教えてください。たとえば
public class Stereo {
public Speaker? LeftSpeaker;
public int? Volume;
}
int?
が正常に動作しますが、私はスピーカーNULL可能を行うことができないんです。これはGoogleにとって驚くほど難しいことではありますが、私はこれが簡単だと思っていました...
なぜあなたはそれを望みますか?値のないタイプ(参照タイプ)は既に設定してnull
と比較することができます。
参照型オブジェクトの上にNullable<T>
ラッパーを追加すると、2つのの可用性レイヤが作成されます。無意味な複雑さなので、許可されていません。
ワイルド盗品:
public class Stereo {
public Speaker LeftSpeaker;
public int? Volume;
public Stereo() {
LeftSpeaker = null; // Mission accomplished.
}
}
@ Noldorin:woops。いくつかの '()'を逃した私はしませんでしたか? –
ええ、私はあなたのためにそれを修正するつもりだ、それは明らかなタイプミスだったので。 :) – Noldorin
@ Noldorin:いいえ、汗。私は最後の数日間、ダミークラスのプロパティを量産しているので、私の脳はちょうど光沢があります:) –
それは簡単です。 「非値」の型は、実際には.NETの参照型と呼ばれ、自動的にNULL可能です。すでにここ
public class Stereo {
public Speaker LeftSpeaker; // ? removed for ref type
public int? Volume;
}
魚の多くを - しかし、あなたは魚する方法を学習したい場合は、私がJon Skeetの本C# in Depthに外観を持つことをお勧め:ちょうどthuslyあなたのコードを変更します。第4.1から第4.5章では、C#の「無効の概念」のすべての側面を扱っています。
「duh」というこの質問を再検討したいと思っています。 –
これは、グーグル "参照型をnull可能にする"が何かを上手にしていない理由です。ありがとう! – user500038