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

  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • KRQE

    KRQE

    6 AĞUSTOS 2007
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014