C# 在单例中使用单例
冒着被宣布为愚蠢的风险 今天我遇到了一个问题,这让我有点困惑 我有两个单例对象,一个Logger和一个ethernethandler。ethernethandler正在使用记录器实例记录与.net mf应用程序中的以太网连接相关的异常C# 在单例中使用单例,c#,singleton,C#,Singleton,冒着被宣布为愚蠢的风险 今天我遇到了一个问题,这让我有点困惑 我有两个单例对象,一个Logger和一个ethernethandler。ethernethandler正在使用记录器实例记录与.net mf应用程序中的以太网连接相关的异常 public sealed class Logger { class InternalLogger { static InternalLogger() {} internal static read
public sealed class Logger
{
class InternalLogger
{
static InternalLogger()
{}
internal static readonly Logger instance = new Logger();
}
public static Logger GetInstance
{
get { return InternalLogger.instance; }
}
private Logger()
{}
}
public sealed class EthernetHandler
{
public Logger Logger = Logger.GetInstance;
class InternalEthernetHandler
{
static InternalEthernetHandler()
{}
internal static readonly EthernetHandler instance = new EthernetHandler();
}
public static EthernetHandler GetInstance
{
get { return InternalEthernetHandler.instance; }
}
private EthernetHandler()
{}
}
出于某种原因,EthernetHandler的Logger属性为null。有人能给我解释一下并提出一个解决方案吗。由于构造函数与类名不匹配,日志程序中存在一些编译时错误。当修复这些错误时,正如我所期望的,一切正常。这实际上是你的真实代码吗?而且,你做的工作比你单身时需要做的还要多。它们不需要每个都有一个内部类来保存静态变量。您可以拉出变量并删除内部类,而不会出现任何问题。很抱歉,我现在已经解决了这个问题,而且我知道还有其他实现单例模式的方法。但是,它们都会生成相同的结果,即Logger属性为null。它们都不会生成Logger为null的结果。您在.net mf中尝试过吗?mf是什么意思?