У меня есть следующий код:
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;
Если нет - почему?