c#中关于set get的问题

misssdf 2009-11-30 10:29:12
代码如下:
//定义一个父类:
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#,不是很了解,希望大家能讲的详细一点。我也没有分啦。谢谢了。
...全文
121 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
misssdf 2009-11-30
  • 打赏
  • 举报
回复
哎呀,真是郁闷呢,没看到。谢谢哈,
gghlkk 2009-11-30
  • 打赏
  • 举报
回复
Console.WriteLine("b.x={0},b.y={1},b.z={2}",b.X,b.Y,b.Z);
少了个占位符

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧