c#属性详解

1.先看入门实例

 

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();
        t.Hours = 24;
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
//输出结果: Time in hours: 24

在上面实例中先声明了属性,之后访问属性,下面是图解

上面实例中可以看到,属性的访问和字段没有区别,但是属性的声明有一些像方法声明。

这个什么原因呢?按照我个人的理解,微软出来属性这样的成员,是字段和方法的一个过渡,它就是没有参数的方法,

归根到底就是函数成员中的一种(请注意方法和函数成员是不同的,后面文章我会更新)

2.属性的声明

在上图上我们可以看出 图中标上1,2,3处和函数成员没有区别,而和函数成员的最大区别有两点

 1.无参数

既然没有参数,要调用它如何传递给它呢?看下图

 

看样子调用属性本身时候,直接用它的属性名t.Hours,里面的语句调用直接用value来代替

 

2.{}里面的语句

  显然里面的语句和其他有一些不同,这个时候c#中微软定义了访问器,按照微软的规定,一个属性的访问器不同,

可能产生三种情况

 情况一: 可读属性

     {}里面只有 get{......}语句的属性

 情况二:可写属性

    {}里面只有 set{......}语句的属性

 情况三:读写属性

   {}里面同时有 get{......} 和 set{......}语句的属性

  

 

 

先写到这里吧! 后续我会更新

posted @ 2014-05-14 11:27  rowping  阅读(386)  评论(0)    收藏  举报