1

重複の可能性:
C# では、「get」を含むこのコードは何を意味しますか?

私はオープンソースプロジェクトを使用しています。このプロジェクトには機能があります。

public virtual ICollection<Customer> AffiliatedCustomers 
{
    get
    {
         return _affiliatedCustomers ?? (_affiliatedCustomers = new List<Customer>()); 
    }
    protected set { _affiliatedCustomers = value; }
 }

「取得」の意味がわかりません。この機能について教えてください。

4

4 に答える 4

8

AffiliatedCustomersプロパティです。

get、プロパティによって値を返すために内部的に使用されるメソッドであるプロパティ ゲッターを定義します。次のように、クラスのインスタンスを指定してこれを使用できます。

var customers = theClass.AffiliatedCustomers; // Looks like a field, but is a property

プロパティにもsetセクションがあり、これは ( protected set { _affiliatedCustomers = value; }) のように、プロパティを介して値を設定したときに何が起こるかを制御できます。

詳細については、「C# のプロパティ」を参照してください。

于 2012-10-02T23:31:19.637 に答える
2

これは関数ではありません。プロパティです。プロパティは、基本的に、いくつかの変数の派手なラッパーです。たとえば、次のプロパティを宣言します。

public string SomeProperty { get; set; }

実際には次のようにコンパイルされます。

private string backing_SomeProperty;

public void set_SomeProperty(string value)
{
    backing_SomeProperty = value;
}

public int get_SomeProperty()
{
    return backing_SomeProperty;
}

これは自動プロパティの例です。もちろん、次のように getter メソッドと setter メソッドを自分で定義することもできます。

public string SomeProperty
{
    get
    {
        // some logic code here
        // then return some value
    }

    set
    {
        // some logic code here
        // then set some value
    }
}
于 2012-10-02T23:35:10.007 に答える
0

これは、msdn が引用したプロパティです。

プロパティは、プライベート フィールドの値を読み取り、書き込み、または計算するための柔軟なメカニズムを提供するメンバーです。プロパティは、パブリック データ メンバーであるかのように使用できますが、実際にはアクセサーと呼ばれる特別なメソッドです。これにより、メソッドの安全性と柔軟性を維持しながら、データに簡単にアクセスできます。

詳細については、次のリンクを参照してください: http://msdn.microsoft.com/en-us/library/x9fsa0sw(v=vs.80).aspx

于 2012-10-02T23:32:24.563 に答える
0

プロパティには getter と setter があります。その目的は明らかです (プロパティの値を取得および設定するため)。

自動プロパティを使用する場合、getとは引き続き存在setしますが、バッキング変数は自動的に実装されます。あなたが与えた例では、コードの作成者が独自の実装を持つことを選択しましたget- この場合、プロパティが初めてアクセスされたときにメンバー変数を自動的に初期化します。

于 2012-10-02T23:32:33.127 に答える