Comment utiliser cette Classe Singleton en C#?

J'ai du mal avec l'aide de modèle de conception Singleton. Je suis en train de l'utiliser dans cette simple application console. J'ai un problème avec elle dans la méthode main de la classe de programmes. Je veux définir un objet de la classe Singleton tels que: var data = Singleton.Instance; mais je ne sais pas pourquoi je ne peux pas le faire
Aussi, je ne sais pas pourquoi je reçois le message d'erreur suivant lorsque je lance le programme:

Unhandled Exception: System.NullRefernceException: Object reference not 
  set to an instance of an object.

Alors, comment résoudre ce problème?

Classe Singleton:

namespace Singleton
{
    class Singleton
    {
        //Variable
        private static Singleton instance;
        private List<string> Messages;
        //Constructor
        private Singleton() { }
        //Property
        public static Singleton Instance
        {
            get 
            {
                if (instance == null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
        //Methods
        public void Message(string message)
        {
            Messages.Add(message);
        }

        public bool HasMessage(string message)
        {
            return Messages.Contains(message);
        }
    }
}

Programme De La Classe:

namespace Singleton
{
    class Program
{
    static void Main(string[] args)
    {
        var data = Singleton.Instance;
        Singleton.Instance.Message("Hello World!!!");
        if(Singleton.Instance.HasMessage("12"))
            Console.WriteLine("NO STRING!!!");
        else
            Console.WriteLine("There is a match");

    }
}
}

Mise à JOUR:

Les gars, j'apprécie vraiment votre aide pour l'instant. Le programme fonctionne maintenant, mais la logique n'est pas de travail. Si vous regardez le programme principal, vous verrez que la liste a seulement "Hello World!!!". Cependant, lorsque j'ai utilisé la HasMessage méthode ne fonctionne pas. Parce que le programme continue de s'afficher "Il y a un match". Mais il devrait m'afficher "PAS de STRING!!!" comme il n'y a pas de match. Alors, comment résoudre ce problème?

Vous appelez Messages.Add(message); mais vous n'avez jamais initialiser Messages à quoi que ce soit. Peut-être que dans le constructeur, ou dans votre déclaration de Messages.
Pour info, votre singleton mise en œuvre n'est pas thread-safe (ignorer si ce n'est pas un problème, mais pourquoi ne pas construire mieux si vous pouvez?): csharpindepth.com/articles/general/singleton.aspx

OriginalL'auteur Technology Lover | 2013-01-15