C#中原始的封装问题的解决办法

来源:互联网 发布:yum pip3 编辑:程序博客网 时间:2024/06/07 04:05

封装属性
       自动使用get 标识符进行读
       自动使用set 标识符进行写

代码示例:
struct Time
{
    ...
    public int Hour //没有(),是H而不是h
    {  
        get { ... }
        set { ... }
    }
    private int hour, minute, second;
}
Time lunch = new Time();
...
lunch.Hour = 12;
...
Console.WriteLine(lunch.Hour);
C#提供了一个解决上述问题的好办法。你可以把get和set函数组合成一个简单的属性。属性的声明包括一个可选的访问修饰符(在例子中是public)、返回值(int)、属性的名字(Hour)和一个包含get和set语句的属性体。特别要注意的是属性没有括号,因为属性不是函数。属性的命名规则应符合一般的命名规则,即公有的使用PascalCase规则,而非公有的使用camelCase规则。在上面的例子中,Hour属性是公有的,所以命名为Hour而不是hour。
例子中演示了属性的用法。属性使用的语法和字段的一样,没有括号。如果你要写一个属性,那你可以这样写:
  lunch.Hour = 12;
属性的set语句自动被执行。
如果你要读一个属性,你可以这样写:
  int hour = lunch.Hour;
属性的get语句自动被执行。

敬请关注我的小站:http://www.taoche.com/buycar/serial/dibadaiyage/