为什么我们需要创建类变量来获取和设置属性?

Inf*_*ner 2 c# automatic-properties

非常简单的问题,但我发现理解我们为什么这么做非常重要.

我可以在类中创建一个属性,如下所示:

第一种方法:

public class MyClass
{
   public string MyProperty {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

public class MyClass
{
    private string _myProperty;

    public string MyProperty
    {
        get
        {
            return _myProperty;
        }
        set
        {
            _myProperty = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

几乎所有文章都使用后一种方法.为什么我们需要在类中创建一个临时变量来保存字符串值.为什么我们不能只使用第一种方法?第二种方法是否提供任何好处?创建额外的变量来存储值是不是很糟糕的内存和性能?

Ale*_*ide 9

在C#3.0之前,自动属性没有被添加到C#中,因此在C#3.0出现之前编写了许多使用后一种形式的示例或文章.除非你需要在你的财产制定者和吸气者中做额外的工作,否则没有理由选择一个而不是另一个.

  • 正确答案.正如链接所解释的那样,第一种方法只是让编译器为你做第二种方法.除了保存击键之外,它们实际上没有任何不同. (2认同)