2011-01-28 20 views
48

ben bunu yapmak istiyorum:C# özellikleri: özel alan olmadan özel set özelliğini nasıl kullanılır?

public Name 
{ 
    get; 
    set 
    { 
     dosomething(); 
     ??? = value 
    } 
} 

o otomatik oluşturulan özel alan kullanmak mümkün mü?

private string name; 
public string Name 
{ 
    get 
    { 
     return name; 
    } 
    set 
    { 
     dosomething(); 
     name = value 
    } 
} 
+1

: http://stackoverflow.com/questions/1277018/c-3-0-automatic- özellikler-özel-değişken-isim-of-of-of-of-özel-değişken-oluşturmak –

cevap

60

Alıcının veya setleyicide özel bir şey yapmak istediğinizde, artık otomatik özellikleri kullanamazsınız.

13

Bu mümkün değildir:
Yoksa ben bu şekilde uygulamak gerektiriyordu olduğunu. Otomatik olarak uygulanan özellikler veya özel kod.

3

Senaryonuza tam olarak uygulanması zorunludur. get ve set öğelerinin ikisi de otomatik olarak uygulanmalı veya ikisi birlikte değil, birlikte uygulanmalıdır.

14

Böyle bir şey deneyebilirsiniz:

bu SO soru karşısında bu konuda iyi bir tartışma Orada çok
public string Name { get; private set; } 
public void SetName(string value) 
{ 
    DoSomething(); 
    this.Name = value; 
} 
+4

+1 Aklımda bu cevap kabul edilen cevabı rebkes. Otomatik özellikler kullanıyor. Açıkça ayarlayıcıyı özel olarak ayarlar. Bu iyi bir şey çünkü son kullanıcı veya geliştiricinin setter yönteminin arkasında daha fazla olacağını bilmesini sağlıyor. – ooXei1sh

İlgili konular