这个想法是使一个方法可以返回不同类型,在我的情况下,字符串数组,字符串堆栈和字符串列表。C#泛型从一个方法返回多个类型
这是hypotetical代码:
static <T> TestMethod<T>(string [] test,int option)
{
switch (option)
{
case 1://Return array of strings
return test;
case 2:
return new List<string>(test);
case 3:
return new Stack<string>(test);
}
}
我输入的字符串列表,并在输出得到我所需要的,通过指定的选项。
现在,该代码给stackoverflow上的errorsm和其他答案的负载都是模糊和混淆,所以我避免了它们(我试图读取它们中的10个,而没有一个是清晰的,并且都是编译错误)
从我所理解的一个错误是,我不能简单地做
static <T> TestMethod<T>
,因为我需要以某种方式什么T是(字符串,列表等)申报。
不,我想返回我喜欢的东西。我看到有人使用Convert.ChangeType,但我想知道你认为什么是这种情况的最佳解决方案。
'我想回到我like'你就是不行。最好你可以返回'IEnumerable'通用的数组,列表和堆栈。 –
2014-10-20 20:47:50
在这种情况下,最好的解决方案很难确定,因为目前尚不清楚您尝试解决的实际问题。如何返回任意东西有用的方法? – 2014-10-20 20:48:57
我想回到IEnumerable接口,正如我在其他人建议接口使用的答案中看到的那样。问题是我对接口有一种特别的憎恨(请参阅我的其他问题),因为我不知道如何处理一个枚举,我不知道如何使用接口并且从未理解它们。 @JeroenMostert该方法将不得不返回与Directory.GetDirectories或GetFiles的文件夹或文件的列表,并返回所需的输出格式 – user2235691 2014-10-20 20:55:50