2012-10-23 12 views
7

私はタイプミスをしたし、Visual Studioは、エラーとしてそれをマークしていない:Nullable <T>とは何ですか?

void Method(Nullable<SpriteFont>? font = null) { }

fontは、出力のSpriteFont??として表示されます。私は何をやったのですか?

UPD:申し訳ありませんが、皆さん、私はそれを一緒に試してみませんでした。私がするまでエラーとして表示されませんでした。それでも、出力ではType??と表示されるのは変です。

さらにSpriteFontはすでにNULL可能であるので、私はとにかくエラーを取得するつもりだった:(

+9

フォントをNullable > – manman

+1

と定義しました。ヌル値を受け入れるタイプをnullable ... likeクラスにすることはできませんでした。 –

+0

@manman:回答を – zerkms

答えて

4

私はちょうど今、ここではそれを試してみました...と私はあなたがsayd何​​を再現することができませんでした。

すべて以下のステートメントのコンパイルに失敗:

  • Nullable<int>? a = 1;
  • Nullable<Nullable<int>> b = 1;
  • Nullable<int?> a = 1;のVisual Studio 2012を使用して
  • void A(Nullable<Nullable<int>> a)
  • void A(Nullable<int>? a)
  • void A(Nullable<int?> a)

、C#4または5私が思うに、.NETフレームワーク4.5。

+2

@バルカン:いいえ、私はそれは答えだと思います。なぜなら問題はそのままであるように見えるからです。 – Mehrdad

+2

@バルカン:間違った質問や虚偽の文については答えはありません。 –

+3

これは実際には答えです。そして答えが基本的に「私があなたがしたことをどのようにして得たか分からない」と言うとき、問題は通常問題です:) –

4

エディタのシンタックスチェッカーは、赤い波紋でエラーとしてフラグを立てませんでした。コンパイラではありません。

2つの異なるコードがあります。あなたがそれを入力している間は構文チェックコードでなければならず、本質的には常に壊れており、非常に異なるアプローチが必要です。

+0

これは唯一の説明です!また、実際にコードをコンパイルせずに質問が行われたことも意味します。 –

関連する問題