コードインスペクション:キャスト式は明示的な型引数に置換できます
C# の C スタイルのキャスト式は、静的アップキャストと動的ダウンキャストの両方にすることができ、どちらも同じ構文を持ちます。 型階層を念頭に置いておかないと、キャストが安全なアップキャストかランタイムダウンキャストかを判断する方法がありません。 さらに、静的アップキャストは、リファクタリング中に誤って動的ダウンキャストに変わる可能性があります。 これらの問題を回避し、コードの脆弱性を軽減するために、このインスペクションでは、可能な場合はキャストの代わりに明示的な型を使用することを提案しています。
ジェネリクスコンテキストでは、引数のキャストの代わりに明示的な型引数を使用できます。
interface IBase;
class Derived : IBase;
class Sample
{
public Sample()
{
var derivedInstance = new Derived();
Task<IBase> task = Task.FromResult((IBase)derivedInstance);
}
}
interface IBase;
class Derived : IBase;
class Sample
{
public Sample()
{
var derivedInstance = new Derived();
Task<IBase> task = Task.FromResult<IBase>(derivedInstance);
}
}
2026 年 6 月 12 日