欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 5210 人关注过本帖
标题:求高手解答c#中属性与方法的具体区别????
等 级:新手上路
帖 子:35
结帖率:80%
&&已结贴√
&&问题点数:20&&回复次数:16&&&
求高手解答c#中属性与方法的具体区别????
真不知道属性与方法的本质分别,?
搜索更多相关主题的帖子:
来 自:曼哈顿
等 级:贵宾
威 望:32
帖 子:1724
专家分:5882
属性可以理解成对象的变量
方法可以理解成对象的函数
那一年,苍井空还是处女
等 级:版主
威 望:209
帖 子:12487
专家分:19042
&&得分:15&
楼主肯定是被C#里的属性过程与属性搞混了,属性过程与属性是两个不一样的概念,虽然在.NET里两者都显示为属性,但是两者是不一样的。
属性的严格写法是
public class a
这个才叫属性,属性是一个类的变量,属性作为变量不承担任何计算过程。
而属性过程则不同
属性过程的写法
public class a
&&&public string a
&&&&&&&&& return this.a;
&&&&&&&&& this.a=
&&&public int b
&&&&&&&&& return this.b;
&&&&&&&&& this.b=
属性过程则不同,属性过程可以理解为特殊的方法或函数,这个方法只有一个参数并且只能返回一个值。
属性过程的作用在于,对输入数据的有效性处理
设想一下用户注册这个功能
用户注册有一个用户类
用户类有一个属性用户名
public class user
而通常限制用户注册用户名不能为空要在用户界面去限制。
user Objus=new user();
if(Objus.username==null)
&&&throw new Exception(&用户名不能为空&);&&
这样写的确没错,但是如果你登陆里也要限制用户名不能为空,用户修改资料里也得限制,这时候还得写一遍上面的代码,而这样就会有很多重复的代码。
就算你能复制粘贴,这些代码也是重复的每回你也要复制粘贴才可以。
如果用属性过程
public class user
&&& private string _
&&& public string username
&&&&&& get
&&&&&&&&& return this._
&&&&&& set
&&&&&&&&& if(value==null)
&&&&&&&&& {
&&&&&&&&&&&& throw new Exception(&用户名不能为空&);
&&&&&&&&& }
&&&&&&&&& this._username=
这时你登陆界面只需两行代码就验证了用户名不能为空
user Objus=new user();
Objus.username=this.Textbox1.T
就两行就可以,其他地方也是一样,这就是属性过程。
方法就不用说了吧?
方法就是一个类的函数这些知识楼主应该知道吧?
等 级:新手上路
属性是 变量, 方法是数。
前者放数据,后者是操作处理代码
等 级:论坛游民
帖 子:37
专家分:24
等 级:新手上路
感觉和其他语言的熟悉和方法差不多啊
一个人的类,他的属性可能有人.胳膊 人.腿
方法可能是让她说话,走路等
等 级:新手上路
帖 子:35
回复 4楼 liangliang11
谢啦,这个
public string Name
&&&&&&&&&&&&get { return _ }
&&&&&&&&&&&&set { _name = }
和一般的属性
pubic int nem;
有什么区别?
等 级:新手上路
帖 子:35
谢谢各位楼主,但是为什么总是用
public string Name
&&&&&&&&&&&&get { return _ }
&&&&&&&&&&&&set { _name = }
来描述属性呢,有什么具体作用。
来 自:~无泪之城~
等 级:侠之大者
帖 子:60
专家分:459
我允许你走进我的世界,但不许在我的世界里走来走去
等 级:版主
威 望:209
帖 子:12487
专家分:19042
以下是引用lyb151在 18:45:21的发言:
谢谢各位楼主,但是为什么总是用
public string Name
&&&&&&&&&&&&get { return _ }
&&&&&&&&&&&&set { _name = }
来描述属性呢,有什么具体作用。作用我已经说了,还不明白吗?属性过程的作用在于对输入输出数据进行有效处理。
public class user
&&public string Name
&&&&&&&&get { return _ }
&&&&&&&&set { _name = }
public class user
&&public string N
不同在于,现在要求Name不为空,并且长度不可以超过6个字符。
方法2你要验证Name不为空你只能在类外面对象创建后验证,而方法1虽然也要创建对象,但是是在类内部就进行了验证。
哪个方便?你可以自己思考一下。
版权所有,并保留所有权利。
Powered by , Processed in 0.021713 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved