楼主肯定是被C#里的属性过程与属性搞混了,属性过程与属性是两个不一样的概念,虽然在.NET里两者都显示为属性,但是两者是不一样的。
属性的严格写法是
public class a
{
public string a;
public int b;
}
这个才叫属性,属性是一个类的变量,属性作为变量不承担任何计算过程。
而属性过程则不同
属性过程的写法
public class a
{
private string a;
private int b;
public string a
{
get
{
return this.a;
}
set
{
this.a=value;
}
}
public int b
{
get
{
return this.b;
}
set
{
this.b=value;
}
}
}
属性过程则不同,属性过程可以理解为特殊的方法或函数,这个方法只有一个参数并且只能返回一个值。
属性过程的作用在于,对输入数据的有效性处理
设想一下用户注册这个功能
用户注册有一个用户类
用户类有一个属性用户名
public class user
{
public string username;
}
而通常限制用户注册用户名不能为空要在用户界面去限制。
user Objus=new user();
if(Objus.username==null)
{
throw new Exception("用户名不能为空");
}
这样写的确没错,但是如果你登陆里也要限制用户名不能为空,用户修改资料里也得限制,这时候还得写一遍上面的代码,而这样就会有很多重复的代码。
就算你能复制粘贴,这些代码也是重复的每回你也要复制粘贴才可以。
如果用属性过程
public class user
{
private string _username;
public string username
{
get
{
return this._username;
}
set
{
if(value==null)
{
throw new Exception("用户名不能为空");
}
this._username=value;
}
}
}
这时你登陆界面只需两行代码就验证了用户名不能为空
user Objus=new user();
Objus.username=this.Textbox1.Text;
就两行就可以,其他地方也是一样,这就是属性过程。
方法就不用说了吧?
方法就是一个类的函数这些知识楼主应该知道吧?