什么是自动实现的属性的确切用法

sha*_*raj 3 .net c# properties

可能是一个重复的问题.我确实搜索了这个并引用了这些文章

我明白的一点是,

  1. 访问就像使字段只读
  2. 我们可以包含一些逻辑
  3. setter/getter用于数据绑定

我真正想要清楚的是,

public class Employee {
    public string strName;
}

public class Employee {
    public string strName {get;set;} 
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 这两个实现之间的区别是什么
  2. 是否有任何地方(我的意思是实际场景),我们可以证明需要自动实现的属性,而不是第一个如上所示的第一个实现.

UPDATE

我知道它是一个重复的问题,我提到了它.请问我问的第二点问题.答案究竟是什么?我无法理解.

如果我没有任何逻辑来设置该值,那么它是一个好的实践还是需要什么?

好的,谢谢大家的回复.我现在明白了.因为我很新,我无法掌握它.但现在我明白了.抱歉浪费你所有的时间.

Pet*_*r M 5

使用自动实现的属性,您可以执行

public class Employee {
 public string StrName {get; private set;} 
}
Run Code Online (Sandbox Code Playgroud)

并创建一个外部只读,但内部可设置的属性.这是你的公共变量无法做到的事情