Programmēšana

Kā izmantot anonīmus veidus C #

Anonīms tips ir tips, kuram nav nosaukuma. Varat izmantot anonīmu veidu, lai vienā vienībā iekapsulētu tikai lasāmu rekvizītu kopu, un jums iepriekš nav jādefinē anonīmais tips. Šajā rakstā ir apspriesti anonīmi veidi, kāpēc tie ir svarīgi un kā mēs varam strādāt ar anonīmiem tipiem C #.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Visual Studio izveidojiet konsoles lietojumprogrammas projektu

Vispirms izveidosim .NET Core konsoles lietojumprogrammas projektu Visual Studio. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai Visual Studio izveidotu jaunu .NET Core konsoles lietojumprogrammas projektu.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “Console App (.NET Core)”.
  4. Noklikšķiniet uz Tālāk.
  5. Nākamajā logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Noklikšķiniet uz Izveidot.

Tas Visual Studio 2019 izveidos jaunu .NET Core konsoles lietojumprogrammas projektu. Mēs izmantosim šo projektu šī raksta nākamajās sadaļās, lai parādītu, kā mēs varam strādāt ar anonīmiem veidiem C #.

Izprot anonīmus veidus C #

Būtībā anonīms tips ir atsauces tips, un to var definēt, izmantojot atslēgvārdu var. Jums var būt viens vai vairāki rekvizīti anonīmā veidā, taču visi tie ir tikai lasāmi. Atšķirībā no C # klases anonīmam tipam nevar būt lauks vai metode - tam var būt tikai īpašības.

Anonīmajam veidam vai tā īpašībām varat piekļūt metodē, kurā ir definēts anonīmais tips. Citiem vārdiem sakot, anonīma veida pieejamība ir ierobežota līdz jomai, kurā tā ir definēta.

Izmantojiet anonīmu veidu C #

Tagad iedziļināsimies kādā kodā. Apsveriet šādu anonīmu veidu.

var autors = jauns

{

Vārds = "Joydip",

Uzvārds = "Kanjilal",

Adrese = "Hyderabad, INDIA"

};

Iepriekšējā koda fragmentā autors ir anonīma tipa instances nosaukums, kas izveidots, izmantojot jauno atslēgvārdu. (Pats anonīmā tipa nosaukums ir zināms tikai sastādītājam.) Šis anonīmais tips satur trīs rekvizītus, proti, Vārds, Uzvārds un Adrese. Visas šīs īpašības ir virknes veida. Ņemiet vērā, ka, strādājot ar anonīmu tipu, pirms inicializācijas jums nav jānorāda rekvizīta tips.

Lai piekļūtu visiem trim iepriekšminētā anonīmā veida rekvizītiem, varat izmantot šo koda fragmentu.

Console.WriteLine ("Vārds: {0} {1}", autors.Vārda Vārds, autors.LastName);

Console.WriteLine ("Adrese: {0}", autors. Adrese);

Izmantojiet ligzdotu anonīmu veidu C #

Var ievietot arī anonīmus veidus. Tas ir, jums var būt anonīms tips kā īpašums cita anonīma tipa iekšpusē. Šeit ir piemērs, kas to ilustrē.

var autors = jauns

{

Vārds = "Joydip",

Uzvārds = "Kanjilal",

Adrese = new {City = "Hyderabad", Country = "INDIA"}

};

Jūs varat piekļūt šī ligzdotā anonīmā veida īpašībām, kā parādīts tālāk sniegtajā koda fragmentā.

Console.WriteLine ("Vārds: {0} {1}", autors.Vārda Vārds, autors.LastName);

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

Pilna programma ir sniegta zemāk jūsu zināšanai.

static void Main (virkne [] args)

{

var autors = jauns

  {

Vārds = "Joydip",

Uzvārds = "Kanjilal",

Adrese = new {City = "Hyderabad", Country = "INDIA"}

  };

Console.WriteLine ("Vārds: {0} {1}", autors.Vārda Vārds, autors.LastName);

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

Konsole. Lasīt ();

}

Izmantojiet anonīmus veidus ar LINQ

LINQ klauzula Select rada un atgriež anonīmu veidu. Tālāk parādītais koda fragments to ilustrē.

Apsveriet šādu klasi ar nosaukumu Autors.

sabiedrības klase Autors

{

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

}

Šis koda fragments parāda, kā varat izveidot autoru sarakstu.

IListu autori =

jauns saraksts ()

{

jauns autors () {Id = 1, Vārds = "Jānis", Uzvārds = "Willey"},

jauns autors () {Id = 2, Vārds = "Stīvs", Uzvārds = "Smits"},

jauns autors () {Id = 3, Vārds = "Bils", Uzvārds = "Ruffner"},

jauns autors () {Id = 4, Vārds = "Joydip", Uzvārds = "Kanjilal"}

};

Nākamais koda fragments parāda, kā jūs varat izmantot LINQ klauzulas Select priekšrocības kopā ar anonīmu veidu, lai pēc vaicājuma izpildes atgrieztu rezultātu.

var result = no a autoros atlasiet jaunu

{

Id = a.Id,

Vārds = a.Vārda Vārds + "\ t" + a.LastName

};

Tagad konsoles logā varat parādīt autoru ID un vārdus, kā parādīts zemāk esošajā koda fragmentā.

foreach (dažādu datu rezultāts)

Console.WriteLine (data.Name);

Pilna programma ir sniegta zemāk jūsu zināšanai.

sabiedrības klase Autors

    {

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

    }

klases programma

    {

static void Main (virkne [] args)

        {

IList autori = jauns saraksts () {

jauns autors () {Id = 1, Vārds = "Jānis",

Uzvārds = "Willey"},

jauns autors () {Id = 2, Vārds = "Stīvs",

Uzvārds = "Smits"},

jauns autors () {Id = 3, FirstName = "Bill",

Uzvārds = "Ruffner"},

jauns autors () {Id = 4, Vārds = "Joydip",

Uzvārds = "Kanjilal"}

                };

var rezultāts = no a autoriem

atlasiet jaunu

                         {

Id = a.Id,

Vārds = a.FirstName + "\ t" + a.LastName

                         };

foreach (dažādu datu rezultāts)

Console.WriteLine (data.Name);

Konsole. Lasīt ();

        }

    }

Anonīmie veidi ļauj jums izveidot tipu un ātri to instantizēt, iepriekš nedeklarējot tipu. No CLR viedokļa anonīms tips ir tikai vēl viens atsauces tips. Sastādītājs katram anonīmam veidam sniedz nosaukumu zem vākiem.

Anonīmie veidi rodas no klases Object. Tāpēc anonīmu tipu var nodot tikai objekta tipa gadījumam. Ņemiet vērā arī to, ka metodes, rekvizīta, notikuma, delegāta utt. Atgriešanās veids nevar būt anonīms.

Kā izdarīt vairāk C #:

  • Kad izmantot abstraktu klasi un saskarni C #
  • Kā strādāt ar AutoMapper C #
  • Kā lietot lambda izteicienus C #
  • Kā strādāt ar Action, Func un Predicate delegātiem C #
  • Kā lietot Dapper ORM C #
  • Kā ieviest vienkāršu reģistrētāju C #
  • Kā strādāt ar log4net C #
  • Kā strādāt ar delegātiem C #
  • Kā strādāt ar atribūtiem C #
  • Kā izmantot lidojošā dizaina rakstu C #
  • Kā ieviest krātuves dizaina modeli C #
  • Virtuālu un abstraktu metožu izpēte C #
  • Kā strādāt ar refleksiju C #
  • Kā strādāt ar filesystemwatcher C #
$config[zx-auto] not found$config[zx-overlay] not found