2008-10-15 11 views
7

nasıl yapabilirim kurulum aşağıdaki gibi tanımlanan bir özellik için varsayılan bir değer: VS2008 (kod parçacığı) 'de "pervane" [sekme] [sekme] kullanıyorVS2008'de (Otomatik Özellikler) "kısa stil" özelliklerini kullanarak varsayılan değer nasıl ayarlanır?

public int MyProperty { get; set; } 

.

?: geri "eski şekilde" düşmeden mümkün zaman için

private int myProperty = 0; // default value 
public int MyProperty 
{ 
    get { return myProperty; } 
    set { myProperty = value; } 
} 

Teşekkür Öyle mi. Saygılarımızla.

+0

, sen normal varsayılan değeri bir özelliği ayarlamak gerekmez (gibi int i = 0). Ders başlatıldığında otomatik olarak gerçekleşir. –

+0

iyi, int'yi seçtim çünkü aklıma gelen ilk şeydi ... ama herhangi bir sınıfın bir özelliğine (dize, özel sınıf, vb.) Bir varsayılan değer ayarlamak istiyorum –

cevap

9

Yapıcınızdaki "varsayılan" değeri ayarlamanız yeterlidir.

public class Person 
{ 
    public Person() 
    { 
     this.FirstName = string.Empty; 
    } 

    public string FirstName { get; set; } 
} 

Ayrıca, Otomatik Özellikler olarak adlandırılırlar.

+0

FWIW, bir varsayılan değer ayarlamak etkin değilse Yapıcınızın herhangi birindeki değeri değiştirirsiniz. Çalıştığım şirkette, aslında varsayılan bir değere sahip olmak için bir "kod kokusu" olduğunu düşünüyoruz, çünkü o zaman herhangi bir kurucunun üzerine yazılıp yazılmadığını görmek zorundayız. –

+0

Teşekkürler david, akılda tutulacaktır. –

2

Tercihim, yapıcıda init yerine, "eski yol" yapmaktı. Daha sonra başka bir kurucu eklerseniz, bunlardan ilkini aradığınızdan emin olmanız gerekir, aksi takdirde mülkleriniz sıfırlanmaz.

+1

Elbette, ancak kuruculardan birini diğerlerinden çağırmak genellikle yapman gereken şeydir. Oldukça standart bir modeldir: Daha az parametreli yapıcılar, varsayılan değerleri çoğu parametre ile yapıcıya aktarır. –

0

[DefaultValue ("MyFirstName")] public string FirstName {get; set; }

+0

Çalışmıyor, ama gerçekten yapılması gerekiyor. – Simon

İlgili konular