gpt4 book ai didi

c# - 带有子类参数的函数

转载 作者:行者123 更新时间:2023-12-02 05:36:37 24 4
gpt4 key购买 nike

所以我得到了一个 Person 类,它包含年龄、性别、姓名(和一个主键 ID)。然后我得到了 2 个 person 子类:

Teacher(Class(French, math, english etc etc), Sick(boolean))

student(Class(French, math, english etc etc), Sick(boolean))
//so these 2 got the same 5 fields.

现在我想制作一种可以创建所有 2 个方法的方法。 (在实践中还有更多,但对于这个问题,我将只使用这两个)

这就是我的想法:

public Person CreateNewPerson (int age, boolean sex, string name, int class, boolean sick, HELP HERE plz OFTYPE<TEACHER OR STUDENT>)
{
var Person1 = new Person { Age = age, Sex = sex, ....... };
// but now to return it as the correct type I got no clue what todo
return (OFTYPE)Person1; // ofc this doesn t work but I hope you understand the problem here
}

希望有人能在这里帮助我,因为 atm 我正在为我得到的每个子类制作一个单独的 CreateNewTeacherCreateNewStudent 等等。(我喜欢其中 5 个 ^^)

提前致谢!

PS:它们稍后保存在不同的表中,我不希望它们都在同一个类中,因为我知道我可以去添加一个 bool 值 person: IsPersonChild 然后 true 或flase but na h

最佳答案

建议的类(class)设置:

public class Person
{
public string Name { get; set; }
}

public class Teacher : Person
{
}

public class Student : Person
{
}

public static class PersonFactory
{
public static T MakePerson<T>(string name) where T: Person, new()
{
T person = new T {Name = name};
return person;
}
}

用法:

Teacher teacher = PersonFactory.MakePerson<Teacher>("Mrs. Smith");

Student student = PersonFactory.MakePerson<Student>("Johnny");

关于c# - 带有子类参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com