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

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • oHeymarvin

    oHeymarvin

    11 Temmuz 2013
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011