blu*_*blu 5 c# generics reflection
我正在尝试一些反思,并对如何将结果对象转换为IList有疑问.
这是反思:
private void LoadBars(Type barType)
{
// foo has a method that returns bars
Type foo = typeof(Foo);
MethodInfo method = foo.GetMethod("GetBars")
.MakeGenericMethod(bar);
object obj = method.Invoke(foo, new object[] { /* arguments here */ });
// how can we cast obj to an IList<Type> - barType
}
Run Code Online (Sandbox Code Playgroud)
我们如何转换方法的结果.从barType参数中调用到类型的IList?
演员的观点通常是告诉编译器你有一些额外的信息 - 你在编译时知道一些事情.你在这里不知道这些信息 - 你只能在执行时知道它.
投射后你对这个价值的期望是什么?不可否认,有些时候它会很有用 - 当你必须使用通用接口时,即使你想要获得不需要类型参数的成员(例如Countin IList<T>).但是,如果这不是你想要做的,那么如果你能提供更多信息,那将会非常有帮助.
| 归档时间: |
|
| 查看次数: |
5503 次 |
| 最近记录: |