戻り値の型がIEnumerable<T>
のメソッドがあり、このメソッドの出力を変数に取り込む必要があります。変数を宣言するためにvarを使用することはできません。なぜなら変数はtry/catchブロック外で宣言しなければならないからです。だから、私の変数の宣言にはどのような具体的なTypeを使用できますか?それは私のメソッドのIEnumerable<T>
出力を受け入れるでしょうか?ここでは、このシナリオは次のようになります。私はList<T>
としてtemp
を宣言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;
}
この例では動作しない場合ので、私はエラーを取得:cannot convert IEnumerable<T> to List<T>
。私は.ToList()
と呼ぶことができ、CalleeMethod()
の出力をList<T>
にキャストできますが、temp
の変数をキャストする必要がなくCalleeMethod()
のIEnumerable<T>
の出力を保持できる具体的なタイプで定義したいと考えています。だから、どのような具体的なタイプtemp
を宣言すればcannot convert...
エラーを投げないでしょうか?
ありがとうございました!
'IEnumerable temp = null;'? –
具体的なタイプはありませんか? –
@タイラージョーンズはもちろんです。あなたは 'IEnumerable CalleeMethod'を宣言していますので、使用できる唯一のタイプは' IEnumerable'か、子ではなく、親です。 –