做C#项目时,属性怎么运用啊,每次都没怎么用,也能做出来
解决方案 »
- VS2008 里面的var类型是强类型还是弱类型,什么时候使用? 能举例说明吗?
- System.Diagnostics.Process.Start(httplink)打不开?
- splitContainer的panel问题
- C#代码连接局域网里别的机器上的 Adaptive Server Anywhere 数据库
- 哪里有免费的Grid控件
- 我想做一个C/S结构的程序,请问在C#里是怎么样建这样的程序?
- 求大神帮解决C#获取网页中动态表格中数据的问题(在线等)
- 在C#下如何用Graphics在一个特定的Canvas下画图,如何刷新绘制区域
- 新人请教个socket异常的问题,谢谢啦
- 在一个线程中使用MessageBox.show(),如何让它置于最顶层(Topmost)?
- 求助:DataTable 写入到Memory的问题
- 怎样判断dll文件加载时的进度和状态
把所有的字段都设为私有字段,则把它们封装成属性,字段就是作用于整个类的变量。
属性的实质是方法(get和set方法),数据安全
但多人合作呢?其它人用你的类很可能就出问题了。
private static int b;
}.......使用属性: a.b;
类有封装的原则,如果直接public一个字段,当然也可以,但是可能会遇到诸如多线程同步的问题,用属性,可以直接在get/set里面封装这些代码逻辑。
当然,你用方法的方式实现也可以存取一个私有字段,其实属性在编译器编译成IL过后,也就是get set方法了。
希望这个能有点帮组,呵呵
属性是把private字段封装之后,暴露一个获取和修改该字段的接口。
与直接将字段定义为public相比,更加安全。
比如你可以在属性的set方法中,写上一些验证逻辑。只有符合这个条件时,这个字段才能被赋值。但是public就没有这么方便。你要另加验证逻辑。
public int Num
{
set{if(value>10){_num=value}}//大于10 才可以赋值
}为什么要这样 对_num起一个保护作用
比如 如果你把private int _num;改成public int _num
那么别人就可以cat._num=0; 可爱的猫就这样被压扁了(think in java中的一个有趣例子) 而用了属性则:cat.Num=0;小于10 赋值不了 保护了可爱的猫不被压扁
LZ现在还是一个人在做,我觉得这部分的东西你了解下就好了..
等以后有机会跟人做大的项目就能明白这个属性的作用了...
你自己写的,全都public都行..
但是合作就不一样..
例如有些公司可能核心的代码只能几个有身份的人知道...其他的程序员只要知道属性直接用就可以了..
貌似是这样..