SORU
11 EYLÜL 2008, PERŞEMBE


Sabit ve salt okunur arasındaki fark nedir?

Ne arasındaki farktırconstvereadonlyve diğer üzerinde kullanıyor musunuz?

CEVAP
11 EYLÜL 2008, PERŞEMBE


Belirgin bir fark dışında

  • olan beyan değeri zaman tanımı için bir const VS readonly değerleri olabilir hesaplanan dinamik ama ihtiyaç için atanan önce yapıcı çıkar.. sonra donmuş.
  • 'inş. örtülü static. Onlara erişmek için ClassName.ConstantName Bir gösterimde kullanın.

İnce bir fark var. Sınıf AssemblyA tanımlanmış düşünün.

public class Const_V_Readonly
{
  public const int I_CONST_VALUE = 2;
  public readonly int I_RO_VALUE;
  public Const_V_Readonly()
  {
     I_RO_VALUE = 3;
  }
}

AssemblyB AssemblyA başvurular ve kodu bu değerleri kullanır. Bu derlenmiş

  • const değer olması durumunda, bir bul-değiştir gibidir, değeri 2 '' AssemblyB'In IL. içine pişmiş. Bu yarın gelecek olursak 20 I_CONST_VALUE güncelleme anlamına gelir.AssemblyB hala ben yeniden gelene kadar 2 olurdu.
  • readonly değer olması durumunda, ref bir bellek için bir yer gibi. Değeri AssemblyB'In IL. içine pişmiş değil Bu hafıza konumu, AssemblyB güncelleme ise yeniden derleme olmadan yeni değeri olur. I_RO_VALUE 30 AssemblyA inşa etmek için güncelleştirildi. Tüm istemciler çekirdekler gerekmez.

Eğer öyleyse bu sabitin değerini değiştirmez emin olduğunuz const kullanın.

public const int CM_IN_A_METER = 100;

Ama eğer değiştirebilecek bir sabit varsa (örneğin, w.r.t. hassas) şüphe içinde, readonly bir kullanın.. ya.

public readonly float PI = 3.14;

Güncelleme: Aku bu ilk işaret etti söz bir kuzen lazım. Ayrıca.. Effective C# - Bill Wagner bunu nereden öğrendim takmak istiyorum

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amena

    Amena

    15 Kasım 2006
  • Missouri Star Quilt Company

    Missouri Sta

    18 ŞUBAT 2009
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008