我正在创建一个简单的User类,如果我使用私有字段的公共属性只使用公共字段,这是否重要?
这是我的意思的一个例子:
public class clsUser
{
private string name;
private string lName;
public string Name
{
get
{
return name;
}
set
{
name= value;
}
}
public string LName
{
get
{
return lName;
}
set
{
lName= value;
}
}
public clsUser(string userID)
{
//get the user id here and set the properties
this.name= getName(userID);
this.lName= getLName(userID);
}
}
或者我可以制作
public string name;
public string lName;
public
现在担心输入所有这些:
public string Name
{
get
{
return name;
}
set
{
name= value;
}
}
然后我将在另一个页面上使用这些表单填充表单:
clsUser cUser - new clsUser("myid");
txtSomething.Text = cUser.name;
依旧......
我想我的问题是为什么我需要首先将属性重新键入为私有,然后再为公共属性(正如我在所有Web示例中看到的那样)。为什么不把它们公之于众呢?
答案 0 :(得分:5)
您将字段与属性混淆。
String name;
是字段
与财产不同,您无法控制它
如果您最终决定添加验证或更改事件或其他逻辑,则需要将其更改为属性,这将破坏已编译的代码。
某些功能(例如,绑定)也只能用于属性。
相反,您可以使用自动实现的属性使编译器生成所有该样板:
public String Name { get; set; }