可能是一个重复的问题。 我确实搜索了这个并引用了这些文章
我理解的是,
我真正想要清楚的是,
public class Employee {
public string strName;
}
public class Employee {
public string strName {get;set;}
}
我的问题:
更新
我知道它是一个重复的问题,我提到了它。请问我问的第二点问题。 答案究竟是什么? 我无法理解。
如果我没有任何逻辑来设定该值,那么它是一个好的做法还是需要什么呢?
非常感谢大家的回复。我现在明白了。因为我很新,我无法掌握它。但现在我明白了。很抱歉浪费你所有的时间。
答案 0 :(得分:5)
使用自动实现的属性,您可以
public class Employee {
public string StrName {get; private set;}
}
并创建一个外部只读,但内部可设置的属性。这是您无法使用公共变量
的内容答案 1 :(得分:2)
在课堂上有一个字段不是一个好主意。使用属性可以更好地encapsulate您的数据。当你只想在你的课堂上没有任何逻辑的情况下访问一个字段时,你可以使用自动属性。
有许多场景在您的课程中使用某个字段会让您的软件发展变得更加困难和困难。
例如:假设你有
public class C
{
public int Value;
}
在你的代码库中。
然后突然意识到Value
不能设置为零。然后,您必须将Value
设为私有,并提供SetValue()
和GetValue()
方法。这很简单。但是等等,你将如何处理依赖于Value
的所有其他代码?
但想想这个
public class C
{
public int Value { get; set; }
}
现在它只需要一个像_value
这样的支持字段,并实现setter
和getter
。