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

  • Monica Catral

    Monica Catra

    12 NİSAN 2009
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • Strata1000

    Strata1000

    28 EYLÜL 2009