属性是通过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