C# 字段(Field)、属性(Property)、特性(Attribute)

世界文章。。。


先看一个类:

class A
{
    private int a;  //这就叫字段a
    public void set_a(int a)
    {
        this.a = a;
    }
    public int get_a()
    {
       return a;
    }
}
上面的类如果要给 a 赋值和取值,就要调用 set_a 和 get_a 方法,这跟 java 的语法没有什么不同。


再看一个类:

class A
{
    public int a { get; set; } //这就叫属性a
}
这个类如果要给 a 赋值,这样做就行

A  _a = new A();
_a.a = 7;
取值也是直接取


说白了  属性 就是 对 字段 的封装 ,等价于 字段 加上 set、get 方法,当然也可以只加 set 没有 get ,也可以自定义属性中的 set、get,像这样

public int a
{
    set
    {
         if(a!=0){a = value;} //这个value是个关键字,它就等于外面赋给它的值
    }
}
这就是微软搞的东西,属性写起来和用起来都比字段简单,所以很多情况下不需要用字段。

不过属性实际包含的东西比单纯的字段多set、get,除非真的是多了这些影响了程序性能,那么可以考虑换成字段。


至于特性,内容略多,直接发链接

http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/for_cxc/article/details/50413739
文章标签: c#
个人分类: C#
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭