IsignableFrom или AS? - PullRequest
       18

IsignableFrom или AS?

5 голосов
/ 03 августа 2010

У меня есть следующий код:

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;

Если нет - почему?

Ответы [ 11 ]

0 голосов
/ 03 августа 2010

Или даже лучше, потому что легче читать истинные условия.

 if(obj is T){
    //Create instance. 
 }
 else{
    throw new InvalidArgumentException("Try Again");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...