В первой версии реализации в реализации Джона Скита здесь он имеет следующий код:
// Bad code! Do not use!
public sealed class Singleton
{
private static Singleton instance = null;
private Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
Мне интересно, почему бы просто не сделать это:
public sealed class Singleton
{
private Singleton() {}
public static Singleton Instance = new Singleton();
}
В чем различия между двумя фрагментами?
(я знаю, что использование Lazy<T>
гораздо лучшее решение)