C# 在单例中使用单例

C# 在单例中使用单例,c#,singleton,C#,Singleton,冒着被宣布为愚蠢的风险 今天我遇到了一个问题,这让我有点困惑 我有两个单例对象,一个Logger和一个ethernethandler。ethernethandler正在使用记录器实例记录与.net mf应用程序中的以太网连接相关的异常 public sealed class Logger { class InternalLogger { static InternalLogger() {} internal static read

冒着被宣布为愚蠢的风险

今天我遇到了一个问题,这让我有点困惑

我有两个单例对象,一个Logger和一个ethernethandler。ethernethandler正在使用记录器实例记录与.net mf应用程序中的以太网连接相关的异常

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是什么意思?