什么是C#中的“自动实现”?

时间:2010-08-18 09:31:07

标签: c#

我需要有关“自动实施”如何与c#相关以及如何以及在何处使用它的信息?

4 个答案:

答案 0 :(得分:4)

如果您指属性,请查看此处:Auto-Implemented Properties (C# Programming Guide)

例如:

public class PurchaseOrder
{
    public double TotalPurchases { get; set; }
    public double MaxPurchases { get; private set; }

    public PurchaseOrder()
    {
        this.MaxPurchases = 10;
    }
}
任何其他公共电话都可以读取或写入

TotalPurchases MaxPurchases仅由当前对象设置,但可以被任何其他公共呼叫读取。

答案 1 :(得分:4)

我能想到的最接近你所说的是Auto-Implemented Properties

Pre C#3.0,如果你想写一个公共财产,你需要做以下事情:

private string _name;

public string Name
{
    get { return _name; }
    set { _name = value; }
}

它没有逻辑,真的是很多样板代码。

现在在C#3.0中,你可以去:

public string Name { get; set; }

框架会为您处理所有样板文件。只要您仍然遵守与传统属性相同的规则,您也可以混合和匹配getter / setter的不同可见性级别。

答案 2 :(得分:1)

您的意思是Auto-Implemented Properties吗?

来自MSDN:

  

在C#3.0及更高版本中,当属性访问器中不需要其他逻辑时,自动实现的属性使属性声明更简洁。它们还使客户端代码能够创建对象。 ...编译器创建一个私有的匿名支持字段,只能通过属性的get和set访问器访问。

基本上,它用于声明具有简单getter和setter的属性的简单语法。

答案 3 :(得分:0)

您可能听说过Auto-Implemented Properties这个词。

这是指使用如下的简写编写的属性:

public string Name { get; set; }

请注意,上述内容要快得多:

private string _name;
public string Name
{
    get { return _name; }
    set { _name = value; }
}

另请注意,自动实现的版本不包含任何私有字段的显式声明;这是因为该字段由编译器自动生成,因此称为“自动实现”。