C#’ta Tuple
Ocak 3, 2010 by mucit · 2 Comments
“Tuple” matematikten bilgisayar bilimine hoplayan, karışık tipteki elemanlar bulunduran dizileri temsil eden bir terim. Fonksiyonel diller bunu önceden beri destekliyor. Ama C# kıyılarına, dördüncü .NET‘te geliyor.
var data = new Tuple("bulutlararası", 2010);
Koda kulak verelim: farklı türde iki verinin peşpeşe bir constructor‘a verildiğini anlıyoruz. Oluşan tip, anonim tiplere benziyor. Bir farkla ki bunu az sonra anlatacağız.
Constructor yerine static metodumuz da var.
var data = Tuple.Create<string, int>("bulutlararası", 2010);
Tip çıkarımı, işe yaramaz mı:
var data = Tuple.Create("bulutlararası", 2010);
Şimdilik en kısa oluşturma şekli bu. Gelelim anonim tipler ile farka. Anonim tipler, metodun dönüş değeri olamıyor. Yazıldığı metodda mahpus; metodun kapsamına mahkum. O nedenle çok dar bir kullanım sahası var. Linq sorgusundan gelenleri almada problem yok ama sonrasında anonim tipler yanınızdan uzaklaşıveriyor.
Elemanlara ulaşalım:
var item1 = data.Item1; // "bulutlararası"
var item2 = data.Item2; // 2010
Tuple, bundan ibaret. Bir dördüncü .NET yeniliği. Mono de Icaza, hemen desteklemiş. Kereveti bize kalmış.
