本文介绍了IsAssignableFrom还是AS?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有下一个代码:
private T CreateInstance<T>(object obj) // where T : ISomeInterface, class
{
...
if (!typeof(T).IsAssignableFrom(obj.GetType())) { throw ..; }
return (T)obj;
}
可以替换为:
T result = obj as T;
if (result == null) { throw ..; }
return result;
如果不是 - 为什么?
If not - why?
推荐答案
另一种变体:
private T CreateInstance<T>(object obj) where T : ISomeInterface // as OP mentioned above
{
...
T result = obj as T;
if (result == null)
{ throw ..; }
else
return result;
}
这篇关于IsAssignableFrom还是AS?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!