1

オーバーライド可能なメソッドがあり、それらを修正することができたほぼすべての領域で、ここでメソッドを実行しましたが、別のコンテキストのコードでメソッドが同じように機能しない部分が 1 つあります。

    public Employee()
    {
        this.InitMembers();
    }

    private void InitMembers()
    {
        // Init the collection so it's never null
        this.Territories = new List<Territory>();
    }
    public Employee(string firstName, string lastName): this()
    {
        this.reffirstName = firstName;
        this.reflastName = lastName;
    }
>   public virtual IList<Territory> Territories { get; protected set; }

ここでも > はエラーの原因となっているコードですが、「自動プロパティに変換する」というインテリセンス オプションを取得します。これは単にコードを開始時の状態に戻し、問題を修正しません。fxcop違反を排除するために、この部分にどのような変更を加える必要があるか知っている人はいますか?

4

1 に答える 1

0

プライベート コンストラクターが、派生クラスからオーバーライドできるメソッドを呼び出しているため、エラーが表示されます。警告を修正するには、コンストラクター内から仮想メソッドへの呼び出しを削除する必要があります。

リストした例では、InitMembers は「this.Territories」を使用しており、これが違反の原因となっています。後のコメントによると、プライベートメンバーを追加しました-代わりにそれを使用してください。

于 2009-09-13T16:38:42.283 に答える