を返すときに、次のプログラムは、アップデート2のVisual Studio 2015年には罰金コンパイルしますが、「キャストが冗長である」という警告が生成されます。「キャストが冗長である」警告否定ブール
class Program
{
static void Main(string[] args)
{
Program p = new Program();
bool negated = p.NegateBool(true);
}
public bool NegateBool(object value)
{
// "Cast is redundant" warning.
return !(bool)value;
// No warning.
//return (bool)value;
// No warning.
//var negated = !(bool)value;
//return negated;
}
}
「クイックフィックス」を受け付けた場合キャストを削除するための提案、プログラムはもうコンパイルされません。
これは、キャストがreturnステートメントで直接行われ、否定演算子が使用されている場合にのみ発生します。
結果が変数に入れられてから返された場合、警告は生成されません。
これはなぜ起こっているのですか?
おそらくロザリンチームにバグレポートを提出しなければなりません。彼らはGithubにあり、とても役に立ちます。 – Joey
まだ、https://github.com/dotnet/roslynにバグを報告してください。 –
私はバグレポートを提出しました。 –