Co to jest ograniczenie „gdzie”.
The 'Gdzie' constraint to ogólne ograniczenie typu w języku C#, które umożliwia programistom określenie parametru typu, który może reprezentować typ ogólny. Ograniczenie jest określone za pomocą 'Gdzie' słowo kluczowe, po którym następuje parametr typu i ograniczenie, składnia użycia 'Gdzie' ograniczenie jest następujące:
klasa publiczna nazwa klasy < T > gdzie t : ograniczenie{
// Implementacja klasy
}
Tutaj 'Nazwa klasy' reprezentuje nazwę klasy z parametrem typu ogólnego 'T' . The 'Gdzie' słowo kluczowe określa ograniczenie dla parametru typu, a 'ograniczenie' jest typem, który musi reprezentować parametr typu.
Weźmy przykład klasy ogólnej, która przyjmuje parametr typu i zwraca wartość minimalną z tablicy wartości. Tutaj kod używa 'Gdzie' ograniczenie, aby określić, że parametr typu musi być typem liczbowym:
przy użyciu Systemu ;
klasa publiczna MinValue < T > gdzie t : struktura , IPorównywalne , IZamienny
{
publiczny T GetMinValue ( T [ ] szyk )
{
Jeśli ( szyk == zero || szyk. Długość == 0 ) {
rzuć nowy ArgumentException ( „Tablica nie może mieć wartości null ani być pusta” ) ;
}
T min = szyk [ 0 ] ;
Do ( int I = 1 ; I < szyk. Długość ; I ++ ) {
Jeśli ( szyk [ I ] . Porównać do ( min ) < 0 ) {
min = szyk [ I ] ;
}
}
powrót min ;
}
}
program klasy publicznej
{
publiczny statyczny próżnia Główny ( )
{
int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
MinValue < int > intMinValue = nowa MinValue < int > ( ) ;
int intMin = intMinValue. PobierzMinValue ( intArray ) ;
Konsola. Linia zapisu ( „Minimalna wartość intArray: {0}” , intMin ) ;
podwójnie [ ] podwójna tablica = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
MinValue < podwójnie > podwójnaMinValue = nowa MinValue < podwójnie > ( ) ;
podwójnie podwójnyMin = podwójnaMinValue. PobierzMinValue ( podwójna tablica ) ;
Konsola. Linia zapisu ( „Minimalna wartość doubleArray: {0}” , podwójnyMin ) ;
}
}
Tutaj zdefiniowaliśmy klasę ogólną „Minimalna wartość” który akceptuje parametr typu 'T' i zwraca wartość minimalną z tablicy wartości. Następnie wykorzystaliśmy tzw 'Gdzie' ograniczenie, aby określić, że parametr typu musi być strukturą, zaimplementować interfejs IComparable i zaimplementować interfejs IConvertible. To ograniczenie zapewnia, że jako parametry typu dozwolone są tylko typy liczbowe.
Wniosek
The 'Gdzie' constraint w języku C# to zaawansowana funkcja, która umożliwia programistom egzekwowanie bezpieczeństwa typów i zapobieganie błędom w czasie wykonywania. Korzystając z tego ograniczenia, można określić zestaw typów, które może reprezentować parametr typu ogólnego. Ten artykuł zawiera przegląd 'Gdzie' constraint w języku C# i zademonstrowałem, jak go używać z kodem.