РЕДАКТИРОВАТЬ: учитывая заголовок вопроса, я предполагаю, что вы хотите ограничить параметр типа не быть типом значения, не допускающим значения NULL.Вероятно, было бы неплохо указать, что в вопросе body тоже.
Нет - такого ограничения нет.Фактически, ограничения class
и struct
запрещают аргументы, которые могут иметь типы значений, допускающие значение NULL.
Вы можете создать интерфейс без ограничения , но создать только две реализации:
interface IFoo<T> { }
class FooClass<T> : IFoo<T> where T : class {}
class FooNullableValue<T> : IFoo<Nullable<T>> where T : struct {}
Конечно, это не помешает кому-либо еще реализовать IFoo<int>
.Если вы сможете дать нам больше информации, мы сможем помочь вам больше.