這個想法是使一個方法可以返回不同類型,在我的情況下,字符串數組,字符串堆棧和字符串列表。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