我正在努力使用单例设计模式。我正在尝试在这个简单的控制台应用程序中使用它。我在 Program 类的 Main 方法中遇到了问题。我想从 Singleton 类定义对象,例如:var data = Singleton.Instance;
但我不知道为什么我不能这样做另外,我不知道为什么我在运行程序时收到以下错误消息:
Unhandled Exception: System.NullRefernceException: Object reference not
set to an instance of an object.
那么如何解决呢?
单例类:
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);
}
}
}
节目类:
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");
}
}
}
更新:
伙计们,到目前为止,我非常感谢您的帮助。该程序现在正在运行,但逻辑不起作用。如果您查看主程序,您会看到列表中只有“Hello World!!!”。但是,当我使用 HasMessage 方法时不起作用。因为程序一直显示“有匹配”。但它应该告诉我“没有字符串!!!” 因为没有匹配。那么如何解决呢?