SORU
2 EYLÜL 2009, ÇARŞAMBA


Bir 'gibi bir özellik' C parametre geçme#

Ben varsayalım:

public class Bob
{
    public int Value { get; set; }
}

Geçmek istiyorumDeğerbir parametre gibi üyesi

Int32.TryParse("123", out bob.Value);

ama derleme hatası alıyorum"'bağımsız bir değişken olarak sınıflandırılmamıştır."'Acaba bu, ya da bir değişken ayıklamak zorunda kalacak mıyım, à la ulaşmak için:

int value;
Int32.TryParse("123", out value);
bob.Value = value;

CEVAP
2 EYLÜL 2009, ÇARŞAMBA


Açıkça bir alan ve "normal" bir yerine özellik otomatik olarak uygulanan bir özellik: . kullanırdın

public class Bob
{
    private int value;
    public int Value
    { 
        get { return value; } 
        set { this.value = value; }
    }
}

O zaman geçirebilirsinizalanbir parametre olarak:

Int32.TryParse("123", out bob.value);

Ama tabii ki, sadece alan özel (ve olmalıdır!) aynı sınıf içinde çalışacak.

Özellikleri sadece bunu yapmana izin yok. Sen nereden VBolabilirreferans tarafından kullanılmak veya bir özellik geçmek dışında bir parametre olarak, temelde ekstra geçici bir değişken var.

Eğer TryParse, dönüş değeri hakkında umursamadın bile her zaman kendi yardımcı yöntem yazabilirsiniz:

static int ParseOrDefault(string text)
{
    int tmp;
    int.TryParse(text, out tmp);
    return tmp;
}

O zaman kullanın:

bob.Value = Int32Helper.ParseOrDefault("123");

Bu şekilde eğer birden fazla yerde bunu yapmak için ihtiyacınız varsa bile geçici bir değişken kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • SamsTech

    SamsTech

    4 NİSAN 2014
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012