Tuple Metot Kullanımı
Yazdığımız uygulamaların ihtiyacına göre bazen metotlarımızdan birden fazla değer döndürmek isteriz. Artık metotumuzdan dönen değerleri diziye,liste atmak yerine .Net 4.0 ile birlikte gelen Tuple metot yapısını kullanarak metotumuzdan birden fazla değer döndürebiliyoruz. Kullandığımız projelere göre bu yapıyı kullanma tercihini size bırakıyorum. Ben örneğimde Tuple metotuma ürün kodu veriyorum ve kendisinden ürünün renk ve diğer varyant bilgilerini vermesini talep ediyorum. Bu bilgileri alıp ekrana yazdırıyorum.
[csharp]
static SqlConnection con;
static SqlConnection Baglanti()
{
if (con == null)
{
con = new SqlConnection("Data Source=.;Initial Catalog=UzmanDB;User ID=sa;Password=1;");
}
return con;
}
static void Main(string[] args)
{
//Tuple metodumuza Ürün kodunu veriyoruz ve bize ürünün varyant bilgilerini döndürüyor.
//Tuple Metodumuzdan dönen birden fazla değeri ekranımıza yazdıralım.
var DonenVeriler = UrunGetir("10.003");
Console.WriteLine("Ürün Kodu: {0}", DonenVeriler.Item1);
Console.WriteLine("Renk Kodu: {0}", DonenVeriler.Item2);
Console.WriteLine("Boyut 1: {0}", DonenVeriler.Item3);
Console.WriteLine("Boyut 2: {0}", DonenVeriler.Item4);
Console.WriteLine("Boyut 3: {0}", DonenVeriler.Item5);
Console.WriteLine();
Console.WriteLine("******** Mesut GÜNEŞ ********");
}
static Tuple<string, string, string, string, string> UrunGetir(string urunKodu)
{
string ItemCode = "";
string ColorCode = "";
string ItemDim1Code = "";
string ItemDim2Code = "";
string ItemDim3Code = "";
SqlCommand cmd = new SqlCommand("select ItemCode,ColorCode,ItemDim1Code,ItemDim2Code,ItemDim3Code from prItemVariant where ItemCode=@ItemCode ", Baglanti());
if (Baglanti().State != ConnectionState.Open) Baglanti().Open();
cmd.Parameters.AddWithValue("@ItemCode", urunKodu);
SqlDataReader dr = cmd.ExecuteReader();
int satirSayisi = 0;
while (dr.Read())
{
satirSayisi++;
ItemCode = dr["ItemCode"].ToString();
ColorCode = dr["ColorCode"].ToString();
ItemDim1Code = dr["ItemDim1Code"].ToString();
ItemDim2Code = dr["ItemDim2Code"].ToString();
ItemDim3Code = dr["ItemDim3Code"].ToString();
}
if (satirSayisi < 1)
{
Console.WriteLine("————— Hata Meydana Geldi —————–");
Console.WriteLine(string.Format("{0} kodlu ürün sistemde kayıtlı değil..", urunKodu));
return null;
}
return Tuple.Create(ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code);
}
[/csharp]