属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。  属性可用作公共数据成员,但它们实际上是称为“访问器”的特殊方法。  这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。

在此示例中,TimePeriod 类存储时间段。  该类在内部以秒为单位存储时间,但是名为 Hours 的属性允许客户端以小时为单位指定时间。  Hours 属性的访问器执行小时与秒之间的转换。

   class TimePeriod
        {            private double seconds;          
          public double Hours
            {                get { return seconds / 3600; }     
                       set { seconds = value * 3600; }
            }
        }        
        class Program
        {            static void Main()
            {
                TimePeriod t = new TimePeriod();           
                // Assigning the Hours property causes the 'set' accessor to be called.
                t.Hours = 24;               
                // Evaluating the Hours property causes the 'get' accessor to be called.
                System.Console.WriteLine("Time in hours: " + t.Hours);
            }
        }        // Output: Time in hours: 24

表达式主体定义

直接只返回表达式结果的属性很常见。  下面的语法快捷方式使用 => 来定义这些属性:

public string Name => First + " " + Last;

属性必须为只读,并且你不能使用 get 访问器关键字。

属性概述

  • 属性允许类公开获取和设置值的公共方法,而隐藏实现或验证代码。

  • get 属性访问器用于返回属性值,而 set 访问器用于分配新值。  这些访问器可以具有不同的访问级别。  有关详细信息,请参阅限制访问器可访问性

  • value 关键字用于定义由 set 访问器分配的值。

  • 不实现 set 访问器的属性均为只读。

  • 对于不需要任何自定义访问器代码的简单属性,请考虑选择使用自动实现的属性的选项。  有关详细信息,请参阅自动实现的属性




相关章节

备注:摘自:https://msdn.microsoft.com/zh-cn/library/x9fsa0sw.aspx