2

stylecop と fxcop を介して、継承したコードベースをクリーンアップするという継続的な使命で、fxcop からの警告の 1 つは CA1801 でした。パラメータを削除するか、メソッド本体で使用してください。

それが不平を言うコードは次のとおりです。

public class Something : ISomeInterface
    public new string MyProperty
    {
        get
        {
            throw new InvalidOperationException("MyProperty is not implemented.");
        }

        set
        {
            throw new InvalidOperationException("MyProperty is not implemented.");
        }
    }

このプロパティはインターフェイスで定義されていますが、この場合は派生クラスでは必要ありません - NotImplementedException の代わりに InvalidOperationException を使用するのが少し疑わしいのは別として、これは一般的だと思いますが、FXCop で警告を除外するだけでよいのではないかと思います。理由を説明するメモ?

この特定のプロパティを 2 番目のインターフェイスにリファクタリングしてから、このインターフェイスを使用する他のすべてのクラスを更新する以外に、FXCop での警告を防ぐために、ベスト プラクティスの観点から他に何ができるかわかりません。私は自分の質問に答えたばかりだと思いますか?:D

4

1 に答える 1

2

この警告が表示されるのは、"new" キーワードが原因だと思います。remove newを overrideに置き換えてみて、警告が消えるかどうかを確認してください。

public class Something : ISomeInterface
    public string MyProperty

ところで、InvalidOperationException の代わりに NotImplementedException を使用することもお勧めします。

于 2010-08-06T15:57:40.857 に答える