在 C# 中使用继承和属性(出于教学原因)玩弄一个奇怪的异常。对于专家来说应该是小菜一碟,但仍然让我感到困惑。这是我的代码:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
public class Employee : Person
{
public int ID
{
get
{
return ID;
}
set
{
if (ID < 0 || ID > 999)
throw new Exception("Id must between [000-999]");
ID = value;
}
}
public Employee(string name, int age, int id):base(name, age)
{
ID = id;
}
}
static void Main(string[] args)
{
var per = new Person("John", 32);
var imp = new Employee("Michael", 44, 330);
}
执行我得到了一个 StackOverflow。最后一个 StackTrace 指向 Employee 类中 Employee.get_ID () 行的错误。
提前感谢您的任何帮助!