anonymous types

Anonymous Types (Anonim/İsimsiz Tipler)

C# 3.0 ile gelen bir özellik olan anonim tipler adından da anlaşılacağı üzere bir değişkenin (objenin) tipini tanımlamadan objeler oluşturmamızı sağlayan bir yapıdır.

var” ifadesi ile tip adı belirtilmeden oluşturulan objeler compiler tarafından anonim tipte oluşturulmaktadır.
Örneğin

string MyString = “Merhaba”;

Yukarıdaki kod parçacığına bakıldığında sağ taraftaki ifadenin (string) olduğu ortadadır. Peki böyle bir tanımlamayı bizim yerimize compiler nasıl yapmaktadır?

var MyString = “Merhaba”;

“var” ifadesi ile değişkenimizi tanımlayıp yine string ifademizi değişkenimize atadığımızda, derleme zamanında “var” ifadesi yerine değişkene atanan verinin tipinin türü değişkene verilmektedir. Burada unutmamak gerekir ki C# halen type safety’dir. Yani aşağıdaki gibi bir işlem yapamazsınız.

var MyString2 = “Merhaba”;
MyString2 = 123; // Burada zekice bir deneme yapıyoruz,
// sonrasında compiler haşağıdaki gibi bir hata veriyor.
// String türünde oluşturulan nesneye int türünden değer atanamaz.
// "Error Cannot implicitly convert type 'int' to 'string'"

(daha&helliip;)