class MyClass
{
Private string name
public string Name
{
get {return Name}
set {Name=value}
}
}
(1)属性可以保证安全,当不在本类中使用时可以保证使用属性名可以避免
用字段的名字。
(2)属性的set和get函数可以限制字段的一些功能,以达到某种目的。
如:
private int a=0
public int A
{
get{return this.a}
set
{
if(value >= 0 &&value <= 100)
this.a=value
else
throw new Exception("值的范围不合法。")
}
}
(3)属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。
属性的严格写法是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
就两行就可以,其他地方也是一样,这就是属性过程。
事件就是发生在该对象上的事情,系统为每个对象预想定义好了一系列的事件,例如:单击、双击、装载属性是用来描述和反映对象特征的参数。例如:控件名称、标题、文本、颜色、字体、可见性
方法是附属于对象的行为和动作的,也就是可以理解为指使对象工作的命令,是为程序设计人员提供的一种特并神殊过程迟蔽,可供用户直接调用。例如:text1.setfocus(此语句使TEXT1控件获得焦点绝旦亏)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)