这样写属性就有用了: public class myclass { string name; string sex; public myclass(string _name,string _sex) { name=_name; sex=_sex; } public string Name { get { return name; } set { name=value; } } public string Sex { get { return sex; } set { if ( value == "男" || value == "女" ) sex=value; else throw new Exception(); } } }
public class myclass
{
string name;
string sex;
public myclass(string _name,string _sex)
{
name=_name;
sex=_sex;
} public string Name
{
get
{
return name;
}
set
{
name=value;
}
} public string Sex
{
get
{
return sex;
}
set
{
if ( value == "男" || value == "女" )
sex=value;
else
throw new Exception();
}
}
}
这就是班级里的两个属性呀,姓名和性别
为什么在public myclass(string _name,string _sex)里没有涉及到这两个属性?涉及到了呀,这个方法是给这两个属性付值的,括号里就是传的两个值参数
通过属性访问器set\get方法来对这些值进行维护所有基本格式是private 类型 维持变量;
public 类型 属性名
{
get{return 维持变量;}
set{维持变量=value;}
}能过构造函数也是向属性维持变量赋被值
name 是私有得
Name 是共有得 极外部可以访问 私有变量隐藏真正放值的位置
{
static void Main()
{
myclass myObject=new myclass()
myObject.Name="myObject";
//通过调用Name属性中的set方法将myObject的name字段,修改为“myObject”
//注意,无法将该句改为“myObject.name="myObject"”,因为在Main()中无法访问name字段。 Console.WriteLine(myObject.Name); //显示"myObject"
//通过调用Name属性中的get方法将myObject的name字段返回并显示,注意:无法在Main()
//中直接访问myObject.name,因为name是myClass的私有字段,只能通过其公共属性Name返回name字段 //对于Sex属性与此同理。
}
}//属性名与字段名未必相同,它可以使类更安全的访问和设置字段,防止字段被设置成为无意义的值(可通过在属性的Set方
//法中添加对新值的验证,避免赋与无意义的值