- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。
程序代码
//私有字段
private int _a;
private bool _b;
private int _c;
private int _d;
//属性:
//可读写
public int a
{
set { _a = value; }
get { return _a; }
}
//只读
public bool b
{
get { return _b; }
}
//可检测赋值是否正确
public int c
{
set
{
if (value = 1 value = 10)
_c = value;
else
throw new Exception(c的赋值范围[1,10]);
}
}
//赋值时更改其他状态
public int d
{
set
{
_d = value;
_b = true;//改变了_b的值
}
get { return _d; }
}
从例子中可看到属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,所以可以理解成属性是为了满足对公有字段的特殊需求而产生的附属品。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。
属性和字段的区别
在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。
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)属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。
属性是类提供给外部调用时用,的可以使用 对象.属性 设置或读取 一个值
get{reture xxx;}表示可读
set{xxx = value;}表示可写字段就是类内部用的.存储数据class Program
{
private int field1; //这个field1就是字段
public int Field1 //这个Fileds1就是属性
{
get{return field1;}
set{field1=value;}
}
}//因为字段的访问修饰符为private外部不能访问它,但可以定义属性为public来访问。希望对你有帮助哦。
您可能关注的文档
- 姐妹QQ个性签名(个性家族签名大全).doc
- 姓上官的好听的名字.doc
- 姓乜的好听的名字.doc
- 姓司马的好听的名字.doc
- 姓名中常用的2897个汉字.doc
- 姓名和字号的常识.doc
- 姓名理论学笔墨常用笔画字库.doc
- 姓名蕴含丰富的文化底蕴.doc
- 姓巢的好听的名字.doc
- 姓慕容的好听的男孩名字.doc
- [乐山]2024年四川乐山市自然资源和规划局选调事业单位工作人员3人笔试历年典型考题及解题思路分析附.docx
- 2024年中国螺纹环塞规市场调查研究报告.docx
- 2024至2030年中国塑料热切造粒生产线行业投资前景及策略咨询研究报告.docx
- 2024年中国麻绒中班椅市场调查研究报告.docx
- [云南]云南省教育厅招募2024年基础教育银龄教师323人笔试历年典型考题及解题思路分析附带答案详解.docx
- [乌兰察布]2024年内蒙古集宁师范学院硕士人才引进笔试历年典型考题及解题思路分析附带答案详解.docx
- 2024年中国防爆型电视测试系统市场调查研究报告.docx
- 2024年中国空气灭菌净化设备市场调查研究报告.docx
- [保定]2024年河北保定市高新区和莲池区事业单位招聘132人笔试历年典型考题及解题思路分析附带答案.docx
- [佛山]20242025学年广东省佛山市南海区教育系统招聘优秀教育人才52人笔试历年典型考题及解题思.docx
文档评论(0)