Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 17968|Atsakyti: 0

[Šaltinis] C# kur naudojimo analizė

[Kopijuoti nuorodą]
Paskelbta 2016-07-12 11:35:43 | | |

Sąlyga where naudojama nurodyti tipo apribojimus, kurie gali būti naudojami kaip kintamieji tipo parametrams, apibrėžtiems bendrosiose deklaracijose.
1. Sąsajos apribojimai.
Pavyzdžiui, galite deklaruoti bendrąją klasę MyGenericClass, kad tipo parametras T galėtų įdiegti IComparable<T> sąsają:

viešoji klasė MyGenericClass<T>, kur T:IComparable { }

2. Bazinės klasės apribojimas: nurodo, kad tipas turi naudoti nurodytą klasę kaip pagrindinę klasę (arba pačią klasę), kad būtų naudojamas kaip to bendrojo tipo tipo parametras.
Kai toks apribojimas naudojamas, jis turi būti rodomas prieš visus kitus parametro tipo apribojimus.
klasė MyClassy<T, U>
kur T : klasė
kur U : struct
{
}

3.where sąlyga taip pat gali apimti konstruktoriaus apribojimus.
Galite naudoti naują operatorių, kad sukurtumėte tipo parametro egzempliorių; Tačiau tam tipo argumentas turi būti apribotas konstruktoriaus apribojimo new(). New() apribojimas leidžia kompiliatoriui žinoti, kad bet kokio tipo pateiktas argumentas turi turėti prieinamą parametrų neturintį (arba numatytąjį) konstruktorių. Pavyzdžiui:
viešoji klasė MyGenericClass <T> , kur T: IComparable, new()
{
Ši eilutė neįmanoma be new() apribojimo:
T punktas = naujas T();
}
Apribojimas new() rodomas sąlygos where pabaigoje.

4. Kelių tipų parametrams kiekvienas tipo parametras naudoja sąlygą where,
Pavyzdžiui:
sąsaja MyI { }
klasė Žodynas<TKey,TVal>
kur TKey: IComparable, IEnumerable
kur TVal: MyI
{
public void Add(TKey key, TVal val)
{
}
}

5. Taip pat galite pridėti apribojimus bendrųjų metodų tipo parametrams, tokiems kaip:

viešasis bool MyMethod <T>(T t) kur T : IMyInterface { }

Atkreipkite dėmesį, kad tipo parametrų apribojimų aprašymo sintaksė yra vienoda tiek atstovams, tiek metodams:

delegatas T MyDelegate<T>() kur T : new()





Bendras Kur

Bendrieji Kur galima kvalifikuoti tipo parametrus. Yra keli būdai.

·kur T : struct apriboja tipo parametrą, kurį T turi paveldėti iš System.ValueType.

·kur T: klasė riboja tipą Parametras T turi būti nuorodos tipas, t. y. jo negalima paveldėti iš System.ValueType.

kur T : new() apriboja tipą parametras T turi turėti numatytąjį konstruktorių

·kur T : NameOfClass apriboja tipą, kurį parametras T turi paveldėti iš klasės arba įdiegti sąsają.

Šiuos kvalifikatorius galima derinti, pvz.: viešoji klasė Taškas, kur T : klasė, IComparable, new()




Ankstesnis:c# NHibernate pagalbos klasė
Kitą:c# http klausosi gijų su HttpListener
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com