C#中的get和set

c#中get和set不提倡把域的保护级别设为public,不安全。推荐使用属性来表达,属性不表示存储位置,这是其与域的根本性区别。
属性提供了只读(get)、只写(set)和读写(get和set)三种接口。
注意:声明的时候必须在同一个属性名下,不能分离。另外三种属性被认为是同一个属性名。
一般来说,get、set用public来修饰以起到公共接口的意义。另外还有abstract、virtual、override、sealed修饰符。
示例代码:
    class MyClass
    {
        int number;
        public int Number
        {
            get{return number;}
            set{number=value;}
        }
    }
    class Test
    {
        public static void Main()
        {
            MyClass MyObject = new MyClass();
            Console.WriteLine(MyObject.Number); //取值操作对应get
            MyObject.Number = 20; // 赋值操作对应set
            Console.WriteLine(MyObject.Number);
        }
    }
例子2:
    class MyClass
    {
        int number;
        public int Number
        {
            set{number=value;}
        }
    }
    class MyClassDerived : MyClass
    {
        new public int Number
        {
            get{return number;}
        }
    }
    class Test
    {
        public static void Main()
        {
            MyClassDerived MyObject = new MyClassDerived();
            ((MyClass)MyObject).Number = 10;
        }
    }



发布了367 篇原创文章 · 获赞 182 · 访问量 33万+
展开阅读全文

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

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览