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ış.