Ohjelmointi

Anonyymien tyyppien käyttäminen C #: ssä

Anonyymi tyyppi on tyyppi, jolla ei ole nimeä. Voit käyttää anonyymia tyyppiä kapseloimaan joukon vain luku -ominaisuuksia yhteen yksikköön - eikä sinun tarvitse määritellä anonyymia tyyppiä etukäteen. Tässä artikkelissa käsitellään mitä nimettömiä tyyppejä on, miksi ne ovat tärkeitä ja kuinka voimme työskennellä nimettömien tyyppien kanssa C #: ssä.

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo konsolisovellusprojekti Visual Studiossa

Ensinnäkin, luodaan .NET Core -konsolisovellusprojekti Visual Studiossa. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi .NET Core -konsolisovellusprojekti Visual Studiossa noudattamalla seuraavia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”Console App (.NET Core)” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä seuraavan projektin nimi ja sijainti uuden Konfiguroi uusi projekti -ikkunassa.
  6. Napsauta Luo.

Tämä luo uuden .NET Core -konsolisovellusprojektin Visual Studio 2019: ssä. Käytämme tätä projektia tämän artikkelin seuraavissa osissa havainnollistaaksemme, kuinka voimme työskennellä nimettömien tyyppien kanssa C #: ssä.

Ymmärrä tuntemattomat tyypit C #: ssä

Pohjimmiltaan anonyymi tyyppi on viitetyyppi ja se voidaan määrittää var-avainsanalla. Sinulla voi olla yksi tai useampia ominaisuuksia nimettömänä, mutta ne kaikki ovat vain luku -tilassa. Toisin kuin C # -luokassa, nimettömällä tyypillä ei voi olla kenttää tai menetelmää - sillä voi olla vain ominaisuuksia.

Voit käyttää anonyymia tyyppiä tai sen ominaisuuksia menetelmän sisällä, jossa anonyymi tyyppi on määritelty. Toisin sanoen, anonyymin tyypin saavutettavuus on rajoitettu laajuuteen, jossa se on määritelty.

Käytä tuntematonta tyyppiä C #: ssä

Kaivetaan nyt koodiin. Harkitse seuraavaa anonyymia tyyppiä.

var author = uusi

{

Etunimi = "Joydip",

Sukunimi = "Kanjilal",

Osoite = "Hyderabad, Intia"

};

Edellisessä koodinpätkässä tekijä on nimettömän tyyppisen ilmentymän nimi, joka on luotu uudella avainsanalla. (Anonyymin tyypin nimen itse tietää vain kääntäjä.) Tämä anonyymi tyyppi sisältää kolme ominaisuutta, nimittäin Etunimi, Sukunimi ja Osoite. Kaikki nämä ominaisuudet ovat merkkijonotyyppiä. Huomaa, että työskennellessäsi anonyymin tyypin kanssa sinun ei tarvitse määrittää ominaisuuden tyyppiä ennen sen alustamista.

Voit käyttää seuraavaa koodinpätkää päästäksesi käyttämään kaikkia kolmea yllä olevan anonyymin tyypin ominaisuutta.

Console.WriteLine ("Nimi: {0} {1}", tekijä.Etänimi, kirjoittaja.Sukunimi);

Console.WriteLine ("Osoite: {0}", tekijä.osoite);

Käytä sisäkkäistä anonyymia tyyppiä C #: ssä

Anonyymit tyypit voidaan myös sijoittaa. Eli sinulla voi olla nimetön tyyppi ominaisuutena toisen anonyymin tyypin sisällä. Tässä on esimerkki, joka kuvaa tätä.

var author = uusi

{

Etunimi = "Joydip",

Sukunimi = "Kanjilal",

Osoite = uusi {Kaupunki = "Hyderabad", Maa = "Intia"}

};

Voit käyttää tämän sisäkkäisen nimettömän tyypin ominaisuuksia alla olevan koodikatkelman mukaisesti.

Console.WriteLine ("Nimi: {0} {1}", kirjailija.Etänimi, kirjoittaja.Sukunimi);

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

Koko ohjelma on annettu alla viitteellesi.

staattinen void Main (merkkijono [] args)

{

var author = uusi

  {

Etunimi = "Joydip",

Sukunimi = "Kanjilal",

Osoite = uusi {Kaupunki = "Hyderabad", Maa = "Intia"}

  };

Console.WriteLine ("Nimi: {0} {1}", tekijä.Etänimi, kirjoittaja.Sukunimi);

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

Konsoli.Lue ();

}

Käytä nimettömiä tyyppejä LINQ: n kanssa

LINQ: n Select-lauseke luo ja palauttaa nimettömän tyypin. Seuraava koodinpätkä kuvaa tätä.

Harkitse seuraavaa luokkaa nimeltä Kirjailija.

public class Kirjoittaja

{

julkinen int Id {get; aseta; }

julkinen merkkijono Etunimi {get; aseta; }

julkinen merkkijono Sukunimi {get; aseta; }

}

Seuraava koodinpätkä osoittaa, kuinka voit luoda luettelon kirjoittajista.

IList-kirjoittajat =

uusi luettelo ()

{

uusi kirjailija () {Id = 1, Etunimi = "John", Sukunimi = "Willey"},

uusi kirjailija () {Id = 2, Etunimi = "Steve", Sukunimi = "Smith"},

uusi kirjailija () {Id = 3, Etunimi = "Lasku", Sukunimi = "Ruffner"},

uusi kirjailija () {Id = 4, Etunimi = "Joydip", Sukunimi = "Kanjilal"}

};

Seuraava koodinpätkä osoittaa, kuinka voit hyödyntää LINQ: n Select-lauseketta yhdessä nimettömän tyypin kanssa palauttaaksesi tuloksen kyselyn suorittamisen yhteydessä.

var result = mistä tekijät valitsevat uuden

{

Id = a.Id,

Nimi = a.Etänimi + "\ t" + a.Sukunimi

};

Voit nyt näyttää tekijän tunnukset ja nimet konsoli-ikkunassa alla olevan koodinpätkän mukaisesti.

foreach (muuttuja tuloksissa)

Console.WriteLine (data.Nimi);

Koko ohjelma on annettu alla viitteellesi.

public class Kirjoittaja

    {

julkinen int Id {get; aseta; }

julkinen merkkijono Etunimi {get; aseta; }

julkinen merkkijono Sukunimi {get; aseta; }

    }

luokan ohjelma

    {

staattinen void Main (merkkijono [] args)

        {

IList kirjoittajat = uusi luettelo () {

uusi kirjailija () {Id = 1, Etunimi = "John",

Sukunimi = "Willey"},

uusi kirjailija () {Id = 2, Etunimi = "Steve",

Sukunimi = "Smith"},

uusi kirjailija () {Id = 3, Etunimi = "Bill",

Sukunimi = "Ruffner"},

uusi kirjailija () {Id = 4, Etunimi = "Joydip",

Sukunimi = "Kanjilal"}

                };

var tulos = kirjoittajien a-arvosta

valitse uusi

                         {

Id = a.Id,

Nimi = a.Etänimi + "\ t" + a.Sukunimi

                         };

foreach (muuttuja tuloksissa)

Console.WriteLine (data.Nimi);

Konsoli.Lue ();

        }

    }

Anonyymien tyyppien avulla voit luoda tyypin ja instantisoida sen nopeasti tarvitsematta ilmoittaa tyyppiä aiemmin. CLR: n näkökulmasta anonyymi tyyppi on vain yksi viitetyyppi. Kääntäjä antaa nimen jokaiselle nimettömälle tyypille kannen alla.

Anonyymit tyypit ovat peräisin Object-luokasta. Siksi voit lähettää nimettömän tyypin vain objektityyppiin. Huomaa myös, että menetelmän, ominaisuuden, tapahtuman, edustajan jne. Palautustyyppi ei voi olla nimetön tyyppi.

Kuinka tehdä enemmän C #: ssä:

  • Milloin abstraktia luokkaa vs. käyttöliittymää käytetään C #: ssä
  • Kuinka työskennellä AutoMapperin kanssa C #: ssä
  • Kuinka käyttää lambda-lausekkeita C #: ssä
  • Kuinka toimia Action-, Func- ja Predicate-edustajien kanssa C #: ssä
  • Kuinka käyttää Dapper ORMia C #: ssä
  • Kuinka toteuttaa yksinkertainen kirjaaja C #: ssä
  • Kuinka työskennellä log4netin kanssa C #: ssä
  • Kuinka työskennellä C #: n edustajien kanssa
  • Kuinka työskennellä attribuuttien kanssa C #: ssä
  • Lentopainokuvion käyttäminen C #: ssä
  • Kuinka toteuttaa arkiston suunnittelumalli C #: ssä
  • Virtuaalisten ja abstraktien menetelmien tutkiminen C #: ssä
  • Kuinka työskennellä heijastuksen kanssa C #: ssä
  • Kuinka työskennellä tiedostojärjestelmän katselijan kanssa C #: ssä
$config[zx-auto] not found$config[zx-overlay] not found