Что такое ограничение «где»
'где' Ограничение — это ограничение универсального типа в C#, которое позволяет разработчикам указывать параметр типа, который может представлять универсальный тип. Ограничение задается с помощью 'где' ключевое слово, за которым следует параметр типа и ограничение, синтаксис для использования 'где' ограничение выглядит следующим образом:
открытый класс ClassName < Т > где Т : ограничение{
// Реализация класса
}
Здесь «Имя класса» представляет имя класса с параметром универсального типа «Т» . 'где' ключевое слово определяет ограничение для параметра типа, а «ограничение» Тип, который должен представлять параметр типа.
Давайте рассмотрим пример универсального класса, который принимает параметр типа и возвращает минимальное значение из массива значений. Здесь код использует 'где' ограничение, чтобы указать, что параметр типа должен быть числовым типом:
используя систему ;
открытый класс MinValue < Т > где Т : структура , IComparable , IКонвертируемый
{
публичный T GetMinValue ( Т [ ] множество )
{
если ( множество == нулевой || множество. Длина == 0 ) {
бросить новое исключение ArgumentException ( 'Массив не может быть нулевым или пустым' ) ;
}
Т мин '=' множество [ 0 ] ;
для ( инт я '=' 1 ; я < множество. Длина ; я ++ ) {
если ( множество [ я ] . По сравнению с ( мин ) < 0 ) {
мин '=' множество [ я ] ;
}
}
возвращаться мин ;
}
}
Программа публичного класса
{
публичный статический пустота Основной ( )
{
инт [ ] intArray '=' { 1 , 2 , 3 , 4 , 5 } ;
Минимальное значение < инт > intMinValue '=' новое минимальное значение < инт > ( ) ;
инт intMin '=' интервалМинвалуе. Получитьминимальное значение ( intArray ) ;
Консоль. WriteLine ( 'Минимальное значение intArray: {0}' , intMin ) ;
двойной [ ] двойной массив '=' { 1.1 , 2.2 , 3.3 , 4.4 , 5,5 } ;
Минимальное значение < двойной > двойное минимальное значение '=' новое минимальное значение < двойной > ( ) ;
двойной двойная мин. '=' двойное минимальное значение. Получитьминимальное значение ( двойной массив ) ;
Консоль. WriteLine ( 'Минимальное значение doubleArray: {0}' , двойная мин. ) ;
}
}
Здесь мы определили общий класс «Минимальное значение» который принимает параметр типа «Т» и возвращает минимальное значение из массива значений. Далее мы использовали 'где' ограничение, чтобы указать, что параметр типа должен быть структурой, реализовывать интерфейс IComparable и реализовывать интерфейс IConvertible. Это ограничение гарантирует, что в качестве параметров типа разрешены только числовые типы.
Заключение
'где' Ограничение в C# — это мощная функция, которая позволяет разработчикам обеспечивать безопасность типов и предотвращать ошибки во время выполнения. Используя это ограничение, вы можете указать набор типов, которые может представлять параметр универсального типа. В этой статье был представлен обзор 'где' ограничение в C# и продемонстрировал, как использовать его с кодом.