2012-03-07 20 views
12

C#でnull可能な(?)クラスを作成するにはどうすればよいですか? Like:null可能なクラスの作成

public class Hello1 { 
    public int Property1 { get; set; } 
} 

public class Hello2 { 
Public Hello1? Property2 { get; set; } //Hello1 should work when it has "?" 
} 

私はHello1クラスを "Hello1?"という形式にしたいと思っています。必要に応じて。

+1

これは、http://stackoverflow.com/questions/3132667/nullable-classの複製です。 – evasilchenko

答えて

31

参照型にnull型を作成する必要はありません。彼らはすでにヌル可能です。これは、int型、bool型、decimal型などのValue型に対してのみ行う必要があります。

+0

私はKeyValuePairを混乱させていましたクラスで。構造体だったので "?"が必要でした。私は同じことを作成しようとしていた。それは理にかなっている。 – iefpw

8

あなたはそうする必要はありません。参照タイプは既にnullになることができます。構造については、単に?を追加すると、の仕事になります。したがって、?を削除し、null== nullと通常どおり使用してください。

0

Hello1はすでにnullableです。あなたの財産に?は必要ありません。

編集 - 私はあなたがnullにHello1.Property1を設定しようとするかもしれない、とあなたはHello1 NULL可能を作ることはそれが可能になることを期待している疑いがあります。それはできません。あなたがそれをしている場合は、Property1をnullableとしてマークする必要があります。

1

すべてのクラスはnull可能です。 NULL可能ではない値の型のnullableは

0

Hello1はすでに参照型であるため、すでにnullになる可能性があります。
nullable構文の "classname?" int,DateTime,floatなどの値型にのみ適用できます。通常はnullにはなりません。

2

疑問符を削除してください。すべてのクラスはデフォルトでnullableです。 (structのような)値型オブジェクトだけが明示的にnullableにする必要があります。

関連する問題