行远-自迩

导航

C#-之属性(1)

1. 属性定义方式与字段类似,但还包括Set和Get两个访问器,其格式如下:

      public/private <type> Name

       {

           get

              {

                  return variable;
              }    

           set

              {

                 赋值语句;
              }   

       }

    属性可以使用virtual ,override,abstract关键字,访问器也可以由自己的访问属性;

2. 私有字段,一般使用属性来对其赋值;属性是访问对象状态的首选,因为他们禁止外部代码访问对象内部数据存储机制的实现,一般以标准方式定义属性,即通过一个公共属性来直接访问一个私有字段。

   private int myInt;

   public int MyInt

     {

          get

            {

               return myInt;

            }

         set

            {

             myInt = value;

            }

    }

    属性成员定义,可以使用VS 单击字段选择重构;

3. 自动属性

      public int MyInt {get; set; }

这个自动属性没有理解!!!

4.一般属性与自动属性区别

(1)自动实现的属性必须同时声明 get和 set 访问器。创建 readonly自动实现属性时,需要将set访问器设置为private 。
(2)自动实现的属性上可以使用特性,不能用在支持后备字段上。如果属性的后备字段上使用特性,则应该只创建常规属性。
(3)自动实现属性get,和set中不能包含特殊的逻辑处理。与字段类似,但不同于字段。与字段不同,属性不作为变量来分类,不能将属性作为 ref参数或  out参数传递。

5. https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/properties,有详细介绍。

 

posted on 2019-01-14 17:26  行远-自迩  阅读(248)  评论(0编辑  收藏  举报