4

少し前に、Nullable <>値型はクラスであり、値型をカプセル化し、HasValueにブール値を与えると思いました。nullの暗黙のキャスト演算子を使用して、BCLで実装されました。

しかし、構造体であるため、これをどのように達成できますか?Nullable <>構造体はCLRにとって「特別」ですか?

4

3 に答える 3

8

Nullable<T>[mscorlib]System.Nullable`1は通常の構造体として定義されていますが、CLR内には、プロパティに従ってnullのインスタンスをボックス化/ボックス化解除するための特別なフックがありHasValueます。これについての詳細はここにあります

于 2011-01-14T18:06:29.717 に答える
0

これがNullable型に関するMSDNの記事です。

http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=VS.100).aspx

Nullable型が構造体のインスタンスであると誤解していない限り、Nullable<>で何を取得しようとしているのかわかりませんSystem.Nullable<T>

于 2011-01-14T18:05:06.917 に答える
0

Nullable<>mscorlib内に実装された構造体です。

X?1つの特別なことは、のエイリアスとして認識するC#コンパイラにありNullable<X>ます。

于 2011-01-14T18:11:25.643 に答える