as
operatorのドキュメントによれば、as
"は、互換性のある参照タイプ間で特定のタイプの変換を実行するために使用されます"。 Nullable is actually a value type以来、私はas
が動作しないことを期待しています。ただし、このコードはコンパイルされて実行されます。Nullable <T>でas演算子を使用できるのはなぜですか?
object o = 7;
int i = o as int? ?? -1;
Console.WriteLine(i); // output: 7
この動作は正しいですか? as
のドキュメントは間違っていますか?何か不足していますか?
Nullableは値型ですが、私はあなたのテキストを修正しました。 –
@Matthew:ありがとう。それはかなり混乱したタイプミスでした。 – recursive
AS/ISとNullablesに関する素晴らしいディスカッション - http://stackoverflow.com/questions/1583050/performance-surprise-with-as-and-nullable-types – sll