我有以下代码:
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;
如果不行 - 为什么?
(T)obj
将抛出异常。 - Anton Tykhyy