Programavimas

Kaip naudoti anoniminius tipus C #

Anoniminis tipas yra tipas, neturintis pavadinimo. Anoniminį tipą galite naudoti tik skaitymo ypatybių rinkiniui viename vienete - jums nereikia iš anksto apibrėžti anoniminio tipo. Šiame straipsnyje aptariami anoniminiai tipai, kodėl jie yra svarbūs ir kaip mes galime dirbti su anoniminiais tipais C #.

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

„Visual Studio“ sukurkite konsolės programos projektą

Pirmiausia sukurkime .NET Core konsolės programos projektą „Visual Studio“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują .NET Core konsolės programos projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „Console App (.NET Core)“.
  4. Spustelėkite Pirmyn.
  5. Tada rodomame lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Spustelėkite Sukurti.

Tai sukurs naują .NET Core konsolės programos projektą „Visual Studio 2019“. Šį projektą naudosime tolesniuose šio straipsnio skyriuose, kad parodytume, kaip galime dirbti su anoniminiais tipais C #.

Supraskite anoniminius tipus C #

Iš esmės anoniminis tipas yra nuorodos tipas ir jį galima apibrėžti naudojant raktinį žodį var. Galite turėti vieną ar daugiau anoniminio tipo ypatybių, tačiau visos jos yra tik skaitomos. Priešingai nei C # klasėje, anoniminis tipas negali turėti lauko ar metodo - jis gali turėti tik savybes.

Anoniminį tipą ar jo ypatybes galite pasiekti metode, kuriame buvo apibrėžtas anoniminis tipas. Kitaip tariant, anoniminio tipo prieinamumas ribojamas ta apimtimi, kur jis buvo apibrėžtas.

Naudokite anoniminį tipą C #

Dabar įsigilinkime į tam tikrą kodą. Apsvarstykite šį anoniminį tipą.

var autorius = naujas

{

FirstName = "Joydip",

Pavardė = "Kanjilal",

Adresas = "Hyderabad, INDIA"

};

Ankstesniame kodo fragmente autorius yra anoniminio tipo egzemplioriaus, sukurto naudojant naują raktinį žodį, pavadinimas. (Pats anoniminio tipo pavadinimą žino tik kompiliatorius.) Šį anoniminį tipą sudaro trys ypatybės: Vardas, Pavardė ir Adresas. Visos šios savybės yra eilutės tipo. Atminkite, kad dirbdami su anoniminiu tipu, prieš inicijuodami, neturite nurodyti nuosavybės tipo.

Norėdami pasiekti visas tris anksčiau nurodyto anoniminio tipo ypatybes, galite naudoti šį kodo fragmentą.

Console.WriteLine ("Vardas: {0} {1}", author.FirstName, author.LastName);

Console.WriteLine ("Adresas: {0}", autorius.Adresas);

Naudokite įdėtą anoniminį tipą C #

Anoniminiai tipai taip pat gali būti įterpti. Tai yra, jūs galite turėti anoniminį tipą kaip nuosavybę kito anoniminio tipo viduje. Čia yra tai iliustruojantis pavyzdys.

var autorius = naujas

{

FirstName = "Joydip",

Pavardė = "Kanjilal",

Adresas = naujas {Miestas = "Hyderabad", Šalis = "INDIJA"}

};

Galite pasiekti šio įdėto anoniminio tipo ypatybes, kaip parodyta toliau pateiktame kodo fragmente.

Console.WriteLine ("Vardas: {0} {1}", autorius.Vardas, autorius.Pavardė);

Console.WriteLine („Adresas: {0}“, author.Address.City);

Visa programa pateikiama žemiau jūsų nuoroda.

static void Main (string [] args)

{

var autorius = naujas

  {

FirstName = "Joydip",

Pavardė = "Kanjilal",

Adresas = naujas {Miestas = "Hyderabad", Šalis = "INDIJA"}

  };

Console.WriteLine ("Vardas: {0} {1}", autorius.Vardas, autorius.Pavardė);

Console.WriteLine ("Adresas: {0}", author.Address.City);

Pultas.Skaitykite ();

}

Naudokite anoniminius tipus su LINQ

LINQ sąlyga „Select“ sukuria ir grąžina anoniminį tipą. Tai iliustruoja šis kodo fragmentas.

Apsvarstykite šią klasę, pavadintą Autorius.

visuomenės klasės Autorius

{

public int Id {get; rinkinys; }

public string FirstName {get; rinkinys; }

vieša eilutė Pavardė {get; rinkinys; }

}

Šis kodo fragmentas parodo, kaip galite sukurti autorių sąrašą.

IList autoriai =

naujas sąrašas ()

{

naujas autorius () {Id = 1, Vardas = "Jonas", Pavardė = "Willey"},

naujas autorius () {Id = 2, FirstName = "Steve", LastName = "Smith"},

naujas autorius () {Id = 3, FirstName = "Bill", LastName = "Ruffner"},

naujas autorius () {Id = 4, FirstName = "Joydip", LastName = "Kanjilal"}

};

Kitas kodo fragmentas parodo, kaip galite pasinaudoti LINQ sąlyga Pasirinkti kartu su anoniminiu tipu ir grąžinti rezultatą vykdant užklausą.

var rezultatas = iš a autorių pasirinkti naują

{

Id = a.Id,

Vardas = a.Vardas + "\ t" + a.Pavardė

};

Dabar galite parodyti autoriaus ID ir vardus konsolės lange, kaip parodyta žemiau esančiame kodo fragmente.

foreach (kintamieji duomenys rezultate)

Console.WriteLine (duomenys.Vardas);

Visa programa pateikiama žemiau jūsų nuoroda.

visuomenės klasės Autorius

    {

public int Id {get; rinkinys; }

public string FirstName {get; rinkinys; }

vieša eilutė Pavardė {get; rinkinys; }

    }

klasės programa

    {

static void Main (string [] args)

        {

IList autoriai = naujas sąrašas () {

naujas autorius () {Id = 1, FirstName = "John",

Pavardė = "Willey"},

naujas autorius () {Id = 2, FirstName = "Steve",

Pavardė = "Smith"},

naujas autorius () {Id = 3, FirstName = "Bill",

Pavardė = "Ruffner"},

naujas autorius () {Id = 4, FirstName = "Joydip",

Pavardė = "Kanjilal"}

                };

var rezultatas = iš autorių a

pasirinkite naują

                         {

Id = a.Id,

Vardas = a.Vardas + "\ t" + a.Pavardė

                         };

foreach (kintamieji duomenys rezultate)

Console.WriteLine (duomenys.Vardas);

Pultas.Skaitykite ();

        }

    }

Anoniminiai tipai leidžia jums sukurti tipą ir greitai jį išaiškinti nereikalaujant anksčiau deklaruoti tipo. CLR požiūriu, anoniminis tipas yra tik dar vienas nuorodos tipas. Kompiliatorius kiekvienam anoniminiam tipui pateikia pavadinimą po viršeliais.

Anoniminiai tipai kilę iš Object klasės. Štai kodėl anoniminį tipą galite perduoti tik objekto tipo egzemplioriui. Taip pat atkreipkite dėmesį, kad metodo, ypatybės, įvykio, delegato ir pan. Grąžinimo tipas negali būti anoniminis.

Kaip padaryti daugiau C #:

  • Kada naudoti abstrakčią klasę ir sąsają C #
  • Kaip dirbti su „AutoMapper“ C #
  • Kaip naudoti lambda išraiškas C #
  • Kaip dirbti su „Action“, „Func“ ir „Predicate“ delegatais C #
  • Kaip naudoti Dapper ORM C #
  • Kaip įdiegti paprastą kaupiklį C #
  • Kaip dirbti su „Log4net“ C #
  • Kaip dirbti su delegatais C #
  • Kaip dirbti su atributais C #
  • Kaip naudoti „flyweight“ dizaino modelį C #
  • Kaip įgyvendinti saugyklos dizaino modelį C #
  • Naršyti virtualius ir abstrakčius metodus C #
  • Kaip dirbti su atspindžiu C #
  • Kaip dirbti su failų stebėjimo programa C #