字段和属性
Posted zkbfighting
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字段和属性相关的知识,希望对你有一定的参考价值。
刚到公司,坐在座位上看昨天打印的单例模式;其中分不清字段和属性的区别了,现在来复习一波
- 属性和字段的区别
在C#中,我们可以自由的访问公有字段,但在一些场合中,我们可能希望限制字段的赋值范围、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些字段值,这些单靠字段是无法做到的,
于是就有了属性,属性中包含两个块:set和get,set块负责属 性的写入工作,get块负责属性的读取工作。
- get和set
有两个类person:
public class person//这样定义的是字段
{ public string name; }
public class person//这样定义的是属性(简写法)
{ public string Name{set;get;} }
第一个类型的name属性未封装,其name属性直接通过public关键字暴露给系统中的其他类了,而第二个类型的name属性通过get set关键字进行了封装,get和set分别对应的是可读和可写,相当于如下代码:
private string name;//真正的字段被私有化,被保护起来了。
public string Name//对外展示的数据
{
get { return name; }
set { name = value; }
}
这样的写法就是属性属性里的get,set访问器可以对字段提供一些安全保护了(个人理解为使用一些逻辑来保护字段的值)对字段的一些限制
以上是关于字段和属性的主要内容,如果未能解决你的问题,请参考以下文章