我有一個返回類型爲IEnumerable<T>
的方法,我需要在變量中捕獲此方法的輸出。我不能用var來聲明變量,因爲變量必須在我的try/catch塊之外聲明。那麼,我可以用什麼具體的類型來聲明我的變量,它會接受我方法的輸出IEnumerable<T>
?下面是這種情況下的樣子:什麼樣的具體類型可以接受IEnumerable <T>
IEnumerable<string> CalleeMethod() {...}
IEnumerable<string> CallerMethod()
{
List<string> temp = null;
try
{
temp = CalleeMethod();
}
catch(Exception exception)
{
Debug.WriteLine(exception.GetBaseException().Message);
}
return temp;
}
這個例子不工作,因爲當我宣佈temp
爲List<T>
,我得到的錯誤:cannot convert IEnumerable<T> to List<T>
。我知道我可以撥打電話.ToList()
,或將CalleeMethod()
的輸出投射到List<T>
,但我想簡單地用一個具體的類型來定義temp
變量,該類型可以保存IEnumerable<T>
輸出CalleeMethod()
而不必投射它。那麼,具體的Type可以聲明temp
,因爲這不會拋出cannot convert...
錯誤?
在此先感謝您的幫助!
'IEnumerable的溫度= NULL;'? –
有沒有具體的型號可以使用? –
@TylerJones當然...沒有。你已經聲明'IEnumerable CalleeMethod',所以你可以使用的唯一類型是IEnumerable'或者它是父母,而不是孩子 –