SORU
31 Mart 2010, ÇARŞAMBA


Jon Singleton Skeet açıklama

public sealed class Singleton
{
    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            return Nested.instance;
        }
    }

    class Nested
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static Nested()
        {
        }

        internal static readonly Singleton instance = new Singleton();
    }
}

C benim şimdiki uygulama Jon Skeet's Singleton pattern uygulamak istiyorum#.

Kod üzerinde iki şüphelerim var

  1. Nasıl bir iç içe geçmiş sınıf içinde sınıf dış erişim mümkün mü? Yani

    internal static readonly Singleton instance = new Singleton();
    

    Bir kapatma denir?

  2. Bu yorum alamadım

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    

    bu açıklama bize neyi gösteriyor?

CEVAP
31 Mart 2010, ÇARŞAMBA


  1. Hayır, bu kilitler ile hiçbir alakası yoktur. İç içe geçmiş bir sınıf özel kurucu burada da dahil olmak üzere dış sınıfın özel üyelerine erişim, vardır.

  2. Benim article on beforefieldinit okuyun. Olabilir ya da no-op statik yapıcı - tembellik ihtiyacınız garantisi bağlıdır istemeyebilirsiniz. Bilmelidir .4 changes the actual type initialization semantics somewhat (hala spec içinde, ama önce daha geçtikçe daha NET).

Yaparsıngerçektenbu model olsa gerek? Uzakta yapamazsın emin misin:

public sealed class Singleton
{
    private static readonly Singleton instance = new Singleton();
    public static Singleton Instance { get { return instance; } }

    static Singleton() {}
    private Singleton() {}
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • sknbp

    sknbp

    16 Kasım 2006