【发布时间】:2013-02-13 18:24:46
【问题描述】:
我正在创建一个简单的用户类,如果我使用带有私有字段的公共属性和只使用公共字段,这有关系吗?
这是我的意思的一个例子:
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;
等等……
我想我的问题是为什么我需要先将属性重新输入为私有,然后再输入为公共(正如我在所有网络示例中看到的那样)。为什么不一开始就将它们公开?
【问题讨论】:
-
“为什么我需要先将属性重新输入为私有,然后再输入为公共”你不需要。我想你可以写
public string Name { get; set; } -
你想让使用你的类的人修改属性吗,如果是,那么公开,如果不是那么私有。
-
不要使用匈牙利符号。你的班级应该被命名为
User。 -
@TanyaXrum 您看到的代码创建了一个名为 name 的 字段 并允许您通过一个名为 property 访问它i>姓名。由于它是由属性访问的 - 该字段可以保持私有。如果您只使用一个字段 - 是的,您可以将其设为
public并完全省略该属性。 (至于您是否应该使用字段或属性 - 您可以查看发布给您的问题或其他类似问题的链接。)