Arşiv

Etiketlenen yazılar constructor

C# 3.0 Object Initializer Özelliği

21 Ocak 2010 Yorum yapılmamış

C# 3.0 object initialize etmek için kodda kısaltma sağlayacak bir yenilik sunuyor. Hemen hergün aşağıdaki gibi kod yazmamız gerekmez mi?

Personel UygulamaGelistirici = new Personel();
UygulamaGelistirici.Id = 42;
UygulamaGelistirici.AdSoyad = "Engin Polat";
UygulamaGelistirici.Birim = "NTV - Yeni Medya";

Personel sınıfından yeni bir örnek oluşturduktan sonra, sınıfın özelliklerinden ihtiyacımız olanlara atamalar yapmaya başlarız.

Eğer Personel sınıfının constructor‘ı olsaydı ve bu özelliklerin atamalarını yapsaydı, tek bir satırda, hem Personel sınıfının yeni bir örneğini UygulamaGelistirici değişkenine oluşturmuş, hem de bazı özelliklerin değerlerini atamış olabilirdik.

Fakat, Personel sınıfının constructor‘ını yazamadığımız durumlarda veya constructor‘da parametreler ile almak için çok fazla özellik olduğu durumlarda bu yöntemi kullanamayız.

C# 3.0 ile birlikte Object Initializer denilen yeni bir kodlama tekniği tanıtıldı.

Hemen yukarıdaki örneği bu teknik ile yazalım;

Personel UygulamaGelistirici = new Personel() { Id = 42, AdSoyad = "Engin Polat", Birim = "NTV - Yeni Medya" };

Gördüğünüz gibi, kodlama bizim için kolaylaşıyor.

Object Initializer içerisinde sadece özelliklere atama yapabiliyoruz, method çağrımı vs. yapılamıyor.

Eğer sınıfın özellikleri başka sınıflardan örnekler istiyorsa, Object Initializer nasıl yazabiliriz? Aşağıdaki gibi yazabiliriz;

VeritabaniSorgulayici dbSorgu = new VeritabaniSorgulayici() {
	Connection = new SqlConnection("..ConnectionString.."),
	Command = new SqlCommand("..Sorgu..")
};

Kısa Sınav – 11

15 Ocak 2010 Yorum yapılmamış

Yazdığınız uygulamanın bir yerinde, kullanıcının önüne otomatik olarak IkinciUygulama.exe isimli başka bir programı otomatik olarak açtırmak istiyorsunuz.

Uygulamanızın, kullanıcının IkinciUygulama.exe uygulamasını kullanmasını ve kapatmasını beklemesi gerekmektedir.

Aşağıdaki seçeneklerden hangisi bu işi tam doğru olarak gerçekleştirir?

  • Process p = new Process();
    p.StartInfo.FileName = "IkinciUygulama.exe";
    p.Start();
    p.WaitForExit(10000);
  • Process p = new Process();
    p.StartInfo.FileName = "IkinciUygulama.exe";
    p.Start();
    p.WaitForExit();
  • Process p = new Process("IkinciUygulama.exe");
    p.Start();
    p.WaitForExit(10000);
  • Process p = new Process("IkinciUygulama.exe");
    p.Start();
    p.WaitForExit();

Sorunun doğru cevabı için; Devamını oku…