c#中关于set get的问题
代码如下:
//定义一个父类:
abstract class A
{
public A()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
int y;
public virtual int X
{
get { return 0; }
}
public virtual int Y
{
get { return y; }
set { y = value; }
}
public abstract int Z { get; set; }
}
//定义一个子类:
class B:A
{
public B()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
int z;
public override int X
{
get { return base.X + 1; }
}
public override int Y
{
set { base.Y = value < 0? 0: value; }
}
public override int Z
{
get { return z; }
set { z = value; }
}
}
//定义一个应用类:
public class MainClass
{
public MainClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static void Main()
{
BaseClass user=new BaseClass();
user.Name="John";
Console.WriteLine("Name in the Derived class is: {0}",user.Name);
B b=new B();
//b.X=1;
b.Y=2;
b.Z=3;
Console.WriteLine("b.x=,b.y={1},b.z={2}",b.X,b.Y,b.Z);
}
}
输出结果为:b.x=,b.y=2,b.z=3
我不明白的是,b.x为什么输出的不是 1,因为是初学c#,不是很了解,希望大家能讲的详细一点。我也没有分啦。谢谢了。