public void DoFoo<T>(T foo) where T : ISomeInterface<T>
{
//possible compare of value type with 'null'.
if (foo == null) throw new ArgumentNullException("foo");
}
Я намеренно проверяю только на null, потому что не хочу ограничивать ValueType
равным его по умолчанию (T)
. Мой код компилируется и отлично работает таким образом (ReSharper жалуется, но не CodeAnalysis). Хотя мне интересно: