Sistem Hocası & Yazılım Hocası Forumu
 
 

Geri git   Sistem Hocası & Yazılım Hocası Forumu > Öğrenci Gurupları Araştırma Ödevleri > Denizli MCPD

Denizli MCPD Denizli MCPD eğitim alan her grup için ayrı bir topic açılacak vede ödevlerinizi bu alana yollayabilceksiniz.

Cevapla
 
Seçenekler Stil
Alt 07-02-2010, 16:03   #1
Onbaşı
Points: 401, Level: 7 Points: 401, Level: 7 Points: 401, Level: 7
Activity: 33% Activity: 33% Activity: 33%
 
Üyelik tarihi: Sat Oct 2009
Mesajlar: 7
Tecrübe Puanı: 11
MusX forumda tanınıyorMusX forumda tanınıyor
Standart Anonymous Types

C# dili, İsimsiz Tip (Anonymous Type) tanımlamaya izin veriyor. Üstelik, private ve public öğelerin oluşturulmasını ve yönetilmesini C# dilinin kendisi üstleniyor.

public class HataLogla()
{
var Hata = new { Mesaj = "Hata Mesajının Kendisi", Tarih = DateTime.Now, Yer = "XClass.YMethod" };
var Kullanici = new { Id = 42, AdSoyad = "Engin Polat", Yonetici = "Ali Veli" };

string Loglanacak = string.Format("Hata Mesajı: {0}\nTarih: {1} {2}\nHatanın Oluştuğu Yer: {3}\n\nKullanıcıId: {4}\nKullanıcı Adı: {5}\nYöneticisi: {6}", Hata.Mesaj, Hata.ToShortDateString(), Hata.Tarih.ToLongTimeString(), Hata.Yer, Kullanici.Id, Kullanici.AdSoyad, Kullanici.Yonetici);

File.WriteAllText(Loglanacak, @"C:\Log\Log.txt");

MessageBox.Show(Hata.Mesaj, Hata.Tarih);
}

Yukarıdaki kodda yer alan Hata ve Kullanici değişkenlerinin tipleri, derleme zamanında derleyici tarafından otomatik oluşturulur. Eğer method‘un içerisine aşağıdaki kodları eklersek;

MessageBox.Show("Hata değişkeninin tipi : " + Hata.GetType().ToString());
MessageBox.Show("Kullanici değişkeninin tipi : " + Kullanici.GetType().ToString());

Mesaj kutularında şu değerleri görürüz;

Hata değişkeninin tipi : <>f_AnonymousType0′3[System.String,System.DateTime,System.String]
Kullanici değişkeninin tipi : <>f_AnonymousType0′3[System.Int32,System.String,System.String]

Farkettiğiniz gibi, böyle bir tip oluşturmaya çalışırsak, derleme zamanında hata alırız, ama C# derleyicisi bizim için bu tipleri oluşturuyor.

Değişkenin tipini veremeyeceğimiz için, C# diline var anahtar kelimesi eklenmiştir.

var anahtar kelimesi sayesinde, değişkenin tipi atandığı değerden otomatik olarak çözümleniyor.

İsimsiz Tipler (Anonymous Types) IDisposable interface’ini uygulamadığı için, Disposable olamazlar.

Eğer yukarıdaki örneği geleneksel kodlama teknikleri ile yazacak olsaydık;

public class HataBilgi
{
private string _Mesaj = string.Empty;
private DateTime _Tarih = DateTime.Now;
private string _Yer = string.Empty;

public string Mesaj
{
get
{
return _Mesaj;
}
set
{
_Mesaj = value;
}
}

public DateTime Tarih
{
get
{
return _Tarih;
}
set
{
_Tarih = value;
}
}

public string Yer
{
get
{
return _Yer;
}
set
{
_Yer = value;
}
}

public HataBilgi(string Mesaj, DateTime Tarih, string Yer)
{
this.Mesaj = Mesaj;
this.Tarih = Tarih;
this.Yer = Yer;
}
}

public class KullaniciBilgi
{
private int _Id = 0;
private string _AdSoyad = string.Empty;
private string _Yonetici = string.Empty;

public int Id
{
get
{
return _Id;
}
set
{
_Id = value;
}
}

public string AdSoyad
{
get
{
return _AdSoyad;
}
set
{
_AdSoyad = value;
}
}

public string Yonetici
{
get
{
return _Yonetici;
}
set
{
_Yonetici = value;
}
}

public KullaniciBilgi(int Id, string AdSoyad, string Yonetici)
{
this.Id = Id;
this.AdSoyad = AdSoyad;
this.Yonetici = Yonetici;
}
}

public class HataLoglama
{
HataBilgi Hata = new HataBilgi("Hata Mesajının Kendisi", DateTime.Now, "XClass.YMethod");
KullaniciBilgi Kullanici = new KullaniciBilgi(42, "Engin Polat", "Ali Veli");

string Loglanacak = string.Format("Hata Mesajı: {0}\nTarih: {1} {2}\nHatanın Oluştuğu Yer: {3}\n\nKullanıcıId: {4}\nKullanıcı Adı: {5}\nYöneticisi: {6}", Hata.Mesaj, Hata.ToShortDateString(), Hata.Tarih.ToLongTimeString(), Hata.Yer, Kullanici.Id, Kullanici.AdSoyad, Kullanici.Yonetici);

File.WriteAllText(Loglanacak, @"C:\Log\Log.txt");

MessageBox.Show(Hata.Mesaj, Hata.Tarih);
}


İsimsiz Tip yeteneklerini kullanarak yazdığımızda ise;

public class HataLogla()
{
var Hata = new { Mesaj = "Hata Mesajının Kendisi", Tarih = DateTime.Now, Yer = "XClass.YMethod" };
var Kullanici = new { Id = 42, AdSoyad = "Engin Polat", Yonetici = "Ali Veli" };

string Loglanacak = string.Format("Hata Mesajı: {0}\nTarih: {1} {2}\nHatanın Oluştuğu Yer: {3}\n\nKullanıcıId: {4}\nKullanıcı Adı: {5}\nYöneticisi: {6}", Hata.Mesaj, Hata.ToShortDateString(), Hata.Tarih.ToLongTimeString(), Hata.Yer, Kullanici.Id, Kullanici.AdSoyad, Kullanici.Yonetici);

File.WriteAllText(Loglanacak, @"C:\Log\Log.txt");

MessageBox.Show(Hata.Mesaj, Hata.Tarih);
}

Kaynak :[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Konu MusX tarafından (07-02-2010 Saat 16:16 ) değiştirilmiştir.
MusX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler
Stil

Yetkileriniz
Yeni konu açamazsınız
Konuya cevap veremezsiniz
You may not post attachments
You may not edit your posts

BB kodu Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı

Gitmek istediğiniz klasörü seçiniz


Şu Anki Saat: 06:24


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Advertisement System V2.6 By   Branden