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

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007