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
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 .
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] .