Общий с T типа значения

#c# #generics

#c# #общие

Вопрос:

Можно ли определить универсальный класс, в котором T может принадлежать только типу значения (например, int, double и так далее)?

Комментарии:

1. Извиняюсь, закрыл его без полного просмотра связанных ответов (пока не привык к этой функции закрытия с золотым значком!), Хотя заголовок вопроса был тем же, фактический вопрос сильно отличался. Хотя я удивлен, что не могу найти дубликат этого где-нибудь.

Ответ №1:

да, вам нужно struct ограничение:

 class OnlyStructs<T> where T : struct { }
 

Но вы должны знать, что это также позволяет использовать пользовательские структуры, а не только int double и т.д. К сожалению, нет встроенного способа ограничения T только для определенных типов, таких как where T : int,double,float .

Ответ №2:

Используйте struct в общем ограничении where T : struct