liv*_*hak 6 c# lazy-evaluation
我正在使用该.NET 4's Lazy<T> type
方法来创建单例实例。但我想将配置文件的三个文件路径传递给Instance
返回单例的属性
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy =
new Lazy<Singleton>(() => new Singleton());
public static Singleton Instance { get { return lazy.Value; } }
private Singleton()
{
}
}
Run Code Online (Sandbox Code Playgroud)
你能和我们分享一下你的班级需要单例的原因吗?也许您可以使用 IoC 容器,在这种情况下,您可以确保 IoC 设置中只有您的类的一个实例。
如果你真的想使用单例,也许可以考虑添加一些 init/config 方法。您的单例必须在访问实例之前进行初始化(如果不是,则抛出异常)。我不喜欢这个解决方案,因为 Singleton 类的用户需要以某种方式了解 init 步骤。