接受ReSharper's的建议会毁了这个单例吗?
本文关键字:单例吗 ReSharper 接受 | 更新日期: 2023-09-27 18:04:08
我正在实现一个静态初始化的单例:
internal sealed class MySingleton
{
private static readonly MySingleton instance = new MySingleton();
public static MySingleton Instance => instance;
private MySingleton()
{
// elided
}
}
ReSharper修改了公共属性Instance,并提供将其转换为自动属性。如果接受修复,结果如下所示:
internal sealed class MySingleton
{
public static MySingleton Instance { get; } = new MySingleton();
private MySingleton()
{
// elided
}
}
这个"修复"是不是使得每次调用Instance属性都会生成一个全新的MySingleton,从而破坏了整个目的,或者有一些关于静态属性的东西ReSharper知道而我不知道?
这是一个只读的auto属性,使用c# 6中引入的语法。右边的代码只执行一次,只是为了初始化属性的值。