Programavimas

Kaip dirbti su plėtinių metodais C #

C # programavimo kalba palaiko išplėtimo metodus iš C # 3.0. Plėtimo metodas yra tas, kuris naudojamas išplėsti esamų tipų funkcionalumą pridedant metodus, nereikalauja kurti naujų išvestinių tipų. Jums nereikia kurti esamų klasių poklasių arba kompiliuoti ar modifikuoti esamas klases, kad galėtumėte dirbti su plėtinių metodais. Plėtimo metodai pagerina jūsų kodo įskaitomumą ir tuo pačiu leidžia išplėsti esamų tipų funkcionalumą.

Į bendrus plėtinius .net įtraukti LINQ standartiniai užklausų operatoriai, kurie prideda papildomas užklausos galimybes System.Collections.IEnumerable ir System.Collections.Generic.IEnumerable tipai. Atminkite, kad galite išplėsti metodus, norėdami išplėsti klasę ar sąsają, tačiau negalite nepaisyti jų metodų. MSDN teigia: "Plėtimo metodai leidžia" pridėti "metodus prie esamų tipų, nesukuriant naujo išvestinio tipo, nekompiliuojant ar kitaip modifikuojant pradinį tipą. Plėtimo metodai yra specialios rūšies statinis metodas, tačiau jie vadinami tarsi buvo išplėstinio tipo pavyzdiniai metodai. "

Iš esmės plėtinio metodas yra specialus statinio metodo tipas ir leidžia jums pridėti funkcijų prie esamo tipo, net jei neturite prieigos prie tipo šaltinio kodo. Plėtinio metodas yra panašus į kitą statinį metodą, tačiau jo pirmasis parametras yra nuoroda „šis“. Prie bet kokio tipo galite pridėti tiek pratęsimo metodų, kiek norite. Svarbiausia, kad netgi vertės tipui galite pridėti plėtinių metodus.

Dirbdami su plėtimosi metodais, nepamirškite šių dalykų:

  • Pratęsimo metodas turi būti statinis
  • Pratęsimo metodas turi būti statinės klasės viduje - klasė gali turėti bet kokį pavadinimą
  • Plėtinio metodo parametre visada turi būti raktinis žodis „šis“ prieš tipą, kuriuo reikia vadinti metodą

Atminkite, kad jūs apibrėžiate plėtinio metodą tipui, kuris turi tą patį parašą kaip ir bet kuris kitas jūsų išplėsto tipo metodas, plėtinio metodas niekada nebus vadinamas.

Plėtinių metodų programavimas C #

Šiame skyriuje mes ištirsime, kaip programuoti plėtinių metodus naudojant C #. Šis kodų sąrašas parodo, kaip atrodo plėtinio metodas.

viešoji statinė klasė „StringExtensions“

    {

public static Bool IsNumeric (ši eilutė str)

        {

dviguba išvestis;

grįžti dvigubai. TryParse (str, out output);

        }

    }

Atkreipkite dėmesį į pirmąjį plėtinio metodo parametrą. Kaip jau buvo aptarta, bet kuris plėtinio metodas turėtų būti statinis ir prieš šį parametrą, kurį norite iškviesti, prieš šį parametrą turėtų būti „šis“ raktinis žodis. Parametrų sąraše nurodydami „šis“ raktinis žodis taip, kaip jis buvo parodytas aukščiau pateiktame pavyzdyje, informuosite kompiliatorių, kad eilutės klasei nustatytas plėtinio metodas.

Štai kaip galite naudoti plėtinio IsNumeric metodą eilutės egzemplioriuje.

static void Main (string [] args)

        {

eilutė str = "100";

jei (str.IsNumeric ())

Console.WriteLine ("Stringo objekte, pavadintame str, yra skaitinė vertė.");

Pultas.Skaitykite ();

        }

Kai vykdote pirmiau nurodytą programą, konsolės lange rodomas pranešimas („Stringo objekte, pavadintame str, yra skaitinė vertė“.

Galite naudoti išplėtimo metodus, kad tipams būtų suteikta naujų funkcijų, o tai reiškia, kad reikia modifikuoti, išvesti ar perkurti pradinį tipą. Kaip jau minėjau anksčiau, išplėtimo metodai taip pat gali būti taikomi vertės tipams. Pažiūrėkime, kaip tai galima pasiekti pavyzdžiu.

Šioje klasėje, pavadintoje „IntegerExtensions“, yra plėtinio metodas, pavadintas „IsEven“, kuris grąžina tiesą, jei sveikasis skaičius, kuriuo jis vadinamas, yra lyginis, kitaip neteisingas.

viešoji statinė klasė „IntegerExtensions“

    {

viešoji statinė „Bool“ „IsEven“ (ši int i)

        {

grąža ((i% 2) == 0);

        }

    }

Štai kaip galite naudoti plėtinio IsEven metodą sveikame skaičiuje.

int n = 2;

jei (n.IsEven ())

Console.WriteLine ("Sveiko skaičiaus reikšmė lygi.");