0

一連のプロパティを定義する抽象クラスがあります。これにより、(オーバーライド プロパティが必要な) 子クラスの各インスタンスがこのプロパティにメモリを割り当てることになりますか? 私が質問する理由は、一部の子クラスはプロパティを必要とし、一部はまったく必要としないためですが、他のクラスは抽象クラスのプロパティにアクセスします。

そして、次のようにオーバーライドするかどうかに違いはありますか:

public override int someProperty {get; set;}

または、このように (関連付けられたフィールドにメモリが割り当てられていない可能性があるため、get メソッドと set メソッドを意図的に空のままにしていますか?)

    public override int someProperty
    {
        get
        {
        }
        set
        {
        }
    }

最初の質問なので、すべて正しく質問していることを願っています。

4

1 に答える 1

3

プロパティは、(必ずしも) ストレージが割り当てられていることを意味しません。プロパティは、単なる構文糖衣getsetメソッドです。データを格納するフィールドも持っていない限り、それらは単なるメソッドのペアです。

例: 基本クラスに次のようなプロパティがある場合:

public virtual int SomeProperty { get { return 0; } { set { } }

その場合、ストレージは割り当てられません。

ただし、自動プロパティを使用する場合:

public virtual int SomeProperty { get; set; }

次に、ストレージが割り当てられる自動バッキング フィールドが生成されます。

于 2013-07-14T19:31:10.720 に答える