Anonyymi tyyppi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 22. maaliskuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 6 muokkausta .

Anonyymit tyypit ovat yksi C  # 3.0:n, Visual Basic .NET 9.0 :n ja Oxygenen innovaatioista, jonka avulla tietotyypit voivat kapseloida joukon ominaisuuksia yhteen objektiin ilman, että tyyppiä tarvitsee erikseen määrittää [1] . Tämä on yksi C#- ja VB.net- kieliin integroidun SQL :n kaltaisen LINQ -kielen tärkeimmistä ominaisuuksista . Koska anonyymit tyypit eivät tue nimen kirjoittamista, ne on tallennettava muuttujiin , jotka on ilmoitettu avainsanalla, joka käskee C#-kääntäjän käyttämään tyyppipäätelmää tietylle muuttujalle. Tällaiset ominaisuudet ovat vain luku -muotoisia C#:ssa, mutta ne ovat myös luku-kirjoitettuja VB.netissä. var

Vertailu dynaamiseen kirjoittamiseen

Tätä ominaisuutta ei pidä sekoittaa dynaamiseen kirjoittamiseen . Vaikka anonyymit tyypit antavat ohjelmoijalle mahdollisuuden määrittää kenttiä lennossa, ne ovat silti staattisia kokonaisuuksia. Tyyppitarkistus tehdään käännösvaiheessa, ja jos yritetään käyttää kenttää, jota ei ole olemassa, seurauksena on käännösvirhe. Näin ohjelmoija voi hyödyntää dynaamisen kielen mukavuutta ja staattisesti kirjoitetun kielen tyyppiturvallisuutta .

Esimerkkejä

C# :ssa

var person = new { Etunimi = "Ivan" , Sukunimi = "Ivanov" } var size = new { Korkeus = 7 , Paino = 5 , Syvyys = 5 }

Visual Basic .NET:ssä

Himmeä henkilö = Uusi kanssa {. Etunimi = "Ivana" , . Sukunimi = "Ivanov" }

Oxygene-kielellä

var person := new class(FirstName := 'Peter', Sukunimi := 'Petrov');

OCamlissa

anna henkilö = objekti val firstName = "Peter" val lastName = "Petrov" end ;;

Kritiikki

Yksi anonyymin tyypin suurimmista haitoista C# 3.0:ssa on kyvyttömyys viedä sitä sen menetelmän ulkopuolelle, jolla se luotiin. Tämä rajoitus johtuu .NET Framework 2.0 CLR:n vanhasta rajoituksesta, joka ei tarjonnut anonyymejä tyyppejä. Tästä johtuen nimiristiriitaa ei voida ratkaista vietäessä anonyymiä tyyppiä samalla allekirjoituksella, ja näin ollen nimetöntä tyyppiä ei voida tehdä näkyväksi kokoonpanon ulkopuolella. Menetelmät ovat rajallisia, koska ne voidaan viedä muihin kokoonpanoihin, mikä aiheuttaisi kuvatun ongelman [2] .

Katso myös

Muistiinpanot

  1. Anonyymit tyypit (C#-ohjelmointiopas) . Microsoft. Haettu 25. marraskuuta 2008. Arkistoitu alkuperäisestä 23. heinäkuuta 2012.
  2. C# 3.0 ja LINQ. C# 3.0 -konseptit, jotka toimivat LINQ :ssa Arkistoitu 3. kesäkuuta 2011 Wayback Machinessa  

Linkit