Type T;
if (report.ReportType == 0) {
T = typeof(ReportTempHum);
} else if (report.ReportType == 11){
T = typeof(ReportVibration);
}
List<(Type)T> result = new List<(Type)T>();
我正在尝试根据reportType条件将类型分配到List中。但有些错误。
我该怎么做?
提前致谢!
编辑:错误; 严重性代码描述项目文件行抑制状态 错误CS0118“T”是一个变量,但类似于
答案 0 :(得分:4)
确保ReportTempHum和ReportVibration具有相同的界面。
List<IReportType> result;
if (report.ReportType == 0) {
result = new List<ReportTempHum>();
} else if (report.ReportType == 11){
result = new List<ReportVibration>();
}
//note to verify List is not null!
答案 1 :(得分:2)
答案 2 :(得分:0)
使用此代码,您可以获得类型T的列表。但请记住,它不是强类型的!
Type T;
if (report.ReportType == 0) {
T = typeof(ReportTempHum);
} else if (report.ReportType == 11){
T = typeof(ReportVibration);
}
var constructedListType = typeof(List<>).MakeGenericType(T);
var instance = Activator.CreateInstance(constructedListType);
答案 3 :(得分:-1)
只需使用dynamic作为参数:
var result = new List<dynamic>();
有关更多信息,请参阅:https://msdn.microsoft.com/en-us/library/dd264736.aspx
另请参阅此相关问题:How to create a List with a dynamic object type C#