7

タイプミスをしましたが、Visual Studioはそれをエラーとしてマークしませんでした:

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

font出力のように表示されSpriteFont??ます。私は何をしましたか?

UPD:申し訳ありませんが、皆さん、私はそれを共同コンパイルしようとしませんでした。コンパイルするまでエラーとして表示されませんでした。Type??それでも、出力のように見えたのは奇妙です。

さらにSpriteFont、すでにnull許容であるため、とにかくエラーが発生する予定でした:(

4

2 に答える 2

4

私は今ここでそれを試しました...そして私はあなたが言ったことを再現することができませんでした。

次のステートメントはすべてコンパイルに失敗します。

  • Nullable<int>? a = 1;
  • Nullable<Nullable<int>> b = 1;
  • Nullable<int?> a = 1;
  • void A(Nullable<Nullable<int>> a)
  • void A(Nullable<int>? a)
  • void A(Nullable<int?> a)

Visual Studio 2012、C#4または5を使用すると、.NetFramework4.5だと思います。

于 2012-10-23T02:44:40.983 に答える
4

エディターの構文チェッカーは、赤い波線のエラーとしてフラグを立てることができませんでした。コンパイラではありません。

コードの2つの異なるチャンク。入力中の構文チェックコードは、本質的に常に壊れている必要があり、非常に異なるアプローチが必要です。

于 2012-10-23T03:02:29.807 に答える