欢迎来到天天文库
浏览记录
ID:37916525
大小:66.50 KB
页数:10页
时间:2019-06-02
《C#中属性和字段(变量)的区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#中属性和字段(变量)的区别相同点:都是类的成员,属性是类的属性,而字段是类色数据成员----------------------------------------------------不同点:1属性可进行数据绑定2属性可通过set和get方法进行数据安全性检验,而字段不行3属性可进行线程同步publicstringName{ set{ lock(this) { } }}4属性可以是抽象的,而字段不行5属性可以接口的形式表现6基于属性的索引7不要直接把字段转化为属性实力与对象:类实例化的过程就是创建一个对象,也
2、就是说实例就是对象;字段:类内部用来存储数据属性:类提供给外部调用时用的可以设置或读取一个值变量:intdoublebool等声明的都是变量常量:前面多个const成员变量:在类中定义的变量局部变量:在方法中定义的变量字段变量就是对象公布出来和外界交互数据的变量。属性是对一个或多个变量的包装。在Java环境中,属性是通过从对象中暴露出来的Set方法和Get来实现的:publicbooleanSetPublicString(stringval){this.mPublicString=val;}publicstringGetPublicString(){returnt
3、his.mPublicString;}而在DotNet当中,总结了以上的Set和Get方法,直接将其定义成了一个暴露属性,通过对这个属性的访问方式不同(取值还是赋值)而采用不同的代码如以下所示的get代码段和set代码段变量的定义publicstringmPublicString;属性的定义 publicstringPublicString{ get{returnthis.mPublicString;} set{this.mPublicString=value;} }因为可以做到使用不同的代
4、码段,所以在访问的时候可以使用更多的逻辑控制来取到或限制需要的值:publicstringPublicString{ get{ if(this.mPublicString.Length>10){ returnthis.mPublicString; } else{ return""; } } set{ this.mPublicString=value; }}以上代码的意思是如果访问PublicString时就去查看mPublicString的长度,如果大于10就返回否则就返回空字符串。综上就把字段变量mPu
5、blicString包装了起来,并不是直接的面向对象的使用者,达到控制的目的。属性的方法中还能写各种复杂的逻辑,因为属性中set或get的代码块等同于SetPublicString和GetPublicString的方法。主要区别:字段(field):与类或对象相关联的变量,一般访问域为private属性(property):字段的封装,通过访问器(accessor)来进行读写操作,一般为public一般字段的修饰符有:静态字段:staticA只读字段:readonlyA一般属性的修饰符:virtualabstractoverride举例说明:privateSyst
6、em.Int32_id;publicSystem.Int32id{ get{return_id;} set{_id=value;}}_id就是字段,id就是属性字段,field: public string name; 属性,property: private string _name; public string name { get{return _name;} set{_name = value;} } 只有
7、变量没有成员变量,表示函数内部的临时变量属性与成员变量类似,它们都提供数据存储,但属性的功能远比成员变量强大。属性由特殊方法访问。get 和 set 访问器允许在设置或检索属性之后验证属性值、执行其他代码或执行其他任务。而get 和 set 访问器操作的便是字段在C#中: 域: 表示与对象或类相关联的变量,修饰符不论是不是public。(与字段类似) 字段: 表示与对象或类相关联的变量。通常来讲修饰符是public的成员变量称为字段,而private更适合说是局部变量。(与域类似) 属性: 表示域或字段的自然扩展,
8、使得在保证
此文档下载收益归作者所有