Как использовать where (общее ограничение типа)

Kak Ispol Zovat Where Obsee Ogranicenie Tipa



Ограничения универсального типа в C# позволяют разработчикам определять набор типов, которые может представлять параметр универсального типа. Эта функция позволяет компилятору обеспечивать безопасность типов и предотвращает ошибки, которые могут возникнуть во время выполнения. Одним из наиболее часто используемых ограничений является 'где' ограничение, эта статья объяснит, что 'где' ограничение находится в C # и как использовать его в вашем коде.

Что такое ограничение «где»

'где' Ограничение — это ограничение универсального типа в 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# и продемонстрировал, как использовать его с кодом.