SORU
27 NİSAN 2010, Salı


Ne zaman salt Okunur kullanın ve tek özelliklerini Almak gerekir

Bir .NET uygulama ne zaman kullanmalıyım "salt Okunur" özelliklerini ve ne zaman kullanmalıyım sadece "". Bu ikisi arasındaki fark nedir.

private readonly double Fuel= 0;

public double FuelConsumption
         {
            get
            {
               return Fuel;
            }
         }

ya

private double Fuel= 0;

public double FuelConsumption
         {
                get
                {
                   return Fuel;
                }
             }

CEVAP
27 NİSAN 2010, Salı


Tek bir alıcı ile bir özellik yaratmak özellik salt okunur sınıfı dışında herhangi bir kod için yapar.

Ancak değeri yöntemleri sınıf tarafından sağlanan kullanarak değiştirebilirsiniz :

public class FuelConsumption {
    private double fuel;
    public double Fuel
    {
        get { return this.fuel; }
    }
    public void FillFuelTank(double amount)
    {
        this.fuel  = amount;
    }
}

public static void Main()
{
    FuelConsumption f = new FuelConsumption();

    double a;
    a = f.Fuel; // Will work
    f.Fuel = a; // Does not compile

    f.FillFuelTank(10); // Value is changed from the method's code
}

readonly Sınıf özel alan ayarı alan değeri sadece bir kez (veya sınıf yapıcısının içinde bir satır içi atama kullanarak) ayarlamanızı sağlar. Daha sonra bunu değiştirmek mümkün olmayacaktır.

public class ReadOnlyFields {
    private readonly double a = 2.0;
    private readonly double b;

    public ReadOnlyFields()
    {
        this.b = 4.0;
    }
}

readonly sınıf alanları genellikle sınıf inşaat sırasında başlatılır, ve asla daha sonra değişmiş olacak değişkenler için kullanılır.

Eğer mülkiyet sağlamak gerekirse Kısacası, değeri asla dışarıdan değiştiriliramasınıf kodunu değiştirmek gerekir, kullanın "sadece Al" özelliği.

Eğer hiç başlangıç değeri ayarlandıktan sonra değişecek olan bir değeri depolamak gerekiyorsa, readonly alanı kullanın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • manadude21

    manadude21

    11 Mart 2008