以下の最初のコードブロックに示すように、C#の引数のuint
パラメータにデフォルト値を代入すると、「int型の値はデフォルトパラメータとして使用できません」というメッセージが表示されます'uint'型に変換する標準的な変換はありません。一方、メソッド本体のuint変数にintを代入すると問題ありません。C#の引数のuintパラメータに整数値を代入するのはなぜ無効ですか?
コードはコンパイルされます。警告は、このように、365の代わりに365Uを使用することによりにより、2010年
void GetHistoricData(uint historyLength = 365)
{
uint i = 365; // this is valid
}
これは簡単に解決される波線のVisual Studioで下線、赤の手段によって提供されています。私はそれを見つけています
void GetHistoricData(uint historyLength = 365U)
{
// method body
}
他の場所で有効な場合には、int
をパラメータのuint
に割り当てることがなぜ無効であるかの説明を見つけることは本当に困難です。誰かが私が見つけようとしている「電球」の瞬間を助けてくれる?
赤い下線は、コンパイルできないことを意味します。あなたはVSを再起動しようとしましたか? – Tsabo
私はそれがあなたのセットアップに固有のものだと信じています。私のコードには警告が "赤くて不思議な下線"で表示されません。 –
ビジュアルスタジオの再起動により、ReSharperは、アンダーラインがハイライト表示されたときに、そのライトバルブを左に表示し、ReSharperの警告の1つに過ぎないことを示しました。 – Jason