【发布时间】:2018-01-02 21:54:18
【问题描述】:
如何以一种方法返回不同的对象列表?我有一些方法,返回一些类型的列表,我不知道 Parse 方法应该返回什么
public static [Something here (IList???)] Parse(string filePath)
{
string[] lines = File.ReadAllLines(filePath);
for (int i = 0; i < lines.Length; i++)
{
string recordId = lines[i].Substring(0, 2);
switch (recordId)
{
case "00":
return Parse00(lines[i]); //public static List<mainInfo> Parse00(string line);
case "11":
return Parse11(lines[i]); //public static List<param> Parse11(string line);
…
…
}
}
}
【问题讨论】:
-
mainInfo是从param继承还是从某个常见类型继承? -
@LasseV.Karlsen,DB 没有不同的表
-
你想做什么?在您的示例中,您只返回第一行。我假设您想解析所有行,对吗?
-
您可以返回
List<object>或List<dynamic>然后(或任何其他集合类型),仅此而已。但是,您的代码并不完全清楚。在你的 switch 语句中匹配 case 的第一行将返回一些东西并中止循环,这段代码真的代表你想要完成的事情吗? -
@LasseV.Karlsen:您关于继承的问题在这里有些无关紧要。即使它们继承,
List<MyDerivedType>也不能隐式转换为List<MyBaseType>。 See this SO answer for clarification。我知道这不是您在评论中明确说明的内容,但我推断这就是您提出这一思路的地方(我认为其他读者也是如此)
标签: c# .net visual-studio list return