C# 类访问问题

C# 类访问问题,c#,singleton,C#,Singleton,我知道这应该很简单,我也应该知道,但我暂时无法理解 我使用单例模式来帮助记录日志。然而,日志记录只发生在一个类中,单例基本上是打开和关闭日志文件的布尔值的观察者。因为我不希望文件被多次打开或关闭,所以我使用单例模式。但是,我不希望它是一个全局值,我也不希望其他类,即使在包内部访问它。我怎样才能使它只有这一个类使用它呢?如果你不想让其他类访问它,为什么它首先是一个单例呢?只需将它设置为一个私有的实例化类,并保留对它的引用。如果您不希望其他类访问它,那么为什么它首先是一个单例类?只需将其设置为私有实

我知道这应该很简单,我也应该知道,但我暂时无法理解


我使用单例模式来帮助记录日志。然而,日志记录只发生在一个类中,单例基本上是打开和关闭日志文件的布尔值的观察者。因为我不希望文件被多次打开或关闭,所以我使用单例模式。但是,我不希望它是一个全局值,我也不希望其他类,即使在包内部访问它。我怎样才能使它只有这一个类使用它呢?

如果你不想让其他类访问它,为什么它首先是一个单例呢?只需将它设置为一个私有的实例化类,并保留对它的引用。

如果您不希望其他类访问它,那么为什么它首先是一个单例类?只需将其设置为私有实例类并保留对其的引用。

将记录到文件的类设置为单例类,或将其设置为单例类中的变量。布尔字段应该是单例的私有字段,没有人可以通过这种方式访问它。

将记录文件的类设置为单例类,或者将其设置为单例类中的变量。布尔字段应该是单例的私有字段,没有人能够以这种方式访问它。

一个-更多左侧字段-解决方案可能是采用记录器中的状态模式。设置日志标记后,实现将切换为打开文件并记录到其中的实现。当它被重置时,实现会跳转到关闭文件而不记录的状态。设置和重新设置不再是一个布尔标志,而是一种进行状态更改的方法。

一个-多个左字段-解决方案可能是采用记录器中的状态模式。设置日志标记后,实现将切换为打开文件并记录到其中的实现。当它被重置时,实现会跳转到关闭文件而不记录的状态。设置和重新设置不再是一个布尔标志,而是一个进行状态更改的方法。

将其设置为要在其中使用它的类中的私有类。另外,考虑将它设为静态类。

使它成为你想使用它的类中的一个私有类。另外,考虑把它变成一个静态类。

我把它变成了一个私有的内部分类,使它成为一个私有的内部类。