我想将我的模型类存储为变量,并在我的所有代码中动态使用它。例如,我有这样的事情:
IEnumerable<Student> students = GetAllStudents();
通常我必须声明并重新输入Student class。但我只需要声明一次,然后在我的代码中动态使用它。我只想做这样的事情:
Student dynamicType;
那之后就可以了:
IEnumerable<dynamicType> students = GetAllStudents();
你能帮我找到合适的解决方案吗?可以这样做吗? 谢谢
答案 0 :(得分:1)
这取决于你所说的“动态”。
如果您只是不想使用班级名称“学生”,那么您正在寻找类型别名。
using dynamicType = MyNameSpace.Student;
...
IEnumerable<dynamicType> students = GetAllStudents();
如果您希望能够从另一部分代码中指定您正在处理的类型,那么您正在寻找泛型。
void DoSomething<T>()
{
IEnumerable<T> things = GetAllThings<T>();
...
}
...
DoSomething<Student>();
如果您希望能够与该类进行互动而不与其关联任何特定类型,那么您正在寻找dynamic
关键字。
IEnumerable<dynamic> students = GetAllStudents();
foreach(var student in students)
{
dynamic studentFoo = student.foo; // no type checking
}
如果您想避免在任何地方输入“学生”,但您确实希望对IEnumerable中的项目进行静态检查Student
,那么您可能只想使用var
关键字\
var students = GetAllStudents();