“get”是什么意思?

时间:2012-10-02 23:29:44

标签: c# properties

  

可能重复:
  In C# what does this code with “get” mean?

我正在使用开源项目。在这个项目中有功能。

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

我不明白“get”是什么意思。 你能解释一下这个功能吗?

4 个答案:

答案 0 :(得分:8)

AffiliatedCustomers属性

get定义属性getter,它是内部用于通过属性返回值的方法。它允许你使用这个给定类的实例,如:

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

属性也可以有一个set部分,就像这个部分一样(protected set { _affiliatedCustomers = value; }),它可以控制通过Property设置值时会发生什么。

有关详细信息,请参阅Properties in C#

答案 1 :(得分: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
    }
}

答案 2 :(得分:0)

这是一个属性,  引自msdn:

  

属性是提供灵活机制来读取,写入或计算私有字段值的成员。可以使用属性,就像它们是公共数据成员一样,但它们实际上是称为访问器的特殊方法。这样可以轻松访问数据,同时仍然提供方法的安全性和灵活性。

请参阅此链接了解更多信息: http://msdn.microsoft.com/en-us/library/x9fsa0sw(v=vs.80).aspx

答案 3 :(得分:0)

属性有一个getter和一个setter - 它们的目的很明显(获取和设置属性的值)。

使用自动属性时,仍有getset,但后备变量会自动为您实现。在示例中,您已经让代码的作者选择了自己的get实现 - 在这种情况下,在第一次访问属性时自动初始化成员变量。