class Person
{
public Person(string name, int age)
{
this.Name = name;
}
public string Name { get; set; }
public virtual void Speak()
{
Console.Write("Hello I am a person");
}
public static T GenerateRandomInstance<T>() where T: Person
{
var p = new T("hello", 4); // error does not compile
// rondomize properties
return p;
}
}
class Student : Person
{
// constructor I call the base class here
public Student(string name, int age)
: base(name, age)
{
}
public override void Speak()
{
Console.Write("Hello I am a student");
}
}
,我有是,當我做的問題:
Student.GenerateRandomInstance();
我得到一個Person
而不是Student
。我如何修復GenerateRandomInstance
方法,以便返回Student而不是Person。 將一個人投給學生會給我一個錯誤
+1謝謝!人構造函數需要2個參數雖然...我應該提及,我不知道你會在哪裏發佈這個很好的答案;) –
@TonoNam是參數將是相同的每個子類型的人或可能他們是不同的類型? –
我正在編輯這將在那裏在不到1分鐘,感謝這麼多的幫助... –