Я работаю над общей функцией С#. Когда ошибка, если общий тип может быть доступен для нового, верните new T()
, в противном случае верните default(T)
.
Код выглядит следующим образом:
private T Func<T>()
{
try
{
// try to do something...
}
catch (Exception exception)
{
if (T is new-able) // <---------- How to do this?
{
return new T();
}
else
{
return default(T);
}
}
}
Я знаю, что для <использования > new T()
требуется where T : new()
. Этот вопрос заключается в том, как судить об этом во время выполнения?