字段和属性

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访问器可以对字段提供一些安全保护了(个人理解为使用一些逻辑来保护字段的值)对字段的一些限制

以上是关于字段和属性的主要内容,如果未能解决你的问题,请参考以下文章

属性和字段的区别和联系

C#面向对象字段(Field)和属性(Property)的区别

Oracle怎么查询表名,字段名以及字段的属性

Django字段属性和选项

C#属性和字段

属性和字段