C# 属性

来源:互联网 发布:mac air哪个键是insert 编辑:程序博客网 时间:2024/06/11 17:29

属性是通过getset来实现的

属性可以只有读或者只有写,也可以加访问修饰符。   

class A
    {
        private int x, y;
        public A(int a,int b)
        {
                x= rangeCheckedX(a);//调用判断函数,判断值是否在设定的范围之中,不在就抛异常
                y = rangeCheckedY(b);
        }
        //属性。
        public int X
        { 
            get {return this.x;}
            set { x = rangeCheckedX(value); }
        }
        public int Y
        {
          //  get {return this.y;}
            set { y = rangeCheckedY(value); }
        }
        private int  rangeCheckedX(int i)
        {
            if (i > 100 || i < 0)
            {
                throw new ArgumentOutOfRangeException("X");
            }
            return i;
        }
        private int rangeCheckedY(int i)
        {
            if (i > 100 || i < 0)
            {
                throw new ArgumentOutOfRangeException("Y");
            }
            return i;
        }

    }

static void Main(string[] args)
        {
            A a1 = new A(70, 70);
            Console.WriteLine(a1.X);
            a1.X = a1.X + 30;
            Console.WriteLine(a1.X);
            a1.Y =  30;
        }

属性还可以直接定义,和别的值没有关系。

这种定义方法,get和set都必须存在。

 public int X
        {
            get;
             set;
        }


还可以给接口定义属性在接口里面,get和set没有大括号

    interface jiekou
    {
        int X { get; set; }
        int Y {get;set;}
    }

类继承接口的属性与函数类似,只需要实现就可以。并且还可以在类中将接口定义成virtual




0 0