関数の戻り型がであるかどうかを確認するにはどうすればよいIEnumerable<T>
ですか?List<T>
つまり、を実装していても、一致させたくありませんIEnumerable<T>
。言い換えれば、関数が実行を延期したかどうかをどのように検出できますか?
1 に答える
3
私はあなたがと対話していると思いますMethodInfo
か?
Type returnType = methodInfo.ReturnType;
bool isEnumerable = returnType.IsGenericType &&
returnType.GetGenericTypeDefinition() == typeof(IEnumerable<>);
もちろん、それが返されるからといって、IEnumerable
それが遅延実行(すなわち)を使用することを意味するわけではyield return
なく、コードを逆コンパイルせずにそれをチェックする実際の方法はありません。
于 2010-10-22T19:51:11.150 に答える