Является ли ленивая реализация меньшим количеством кода, но с тем же результатом? Конечно, это, как правило, хорошая вещь (при условии, что код будет коротким/эффективным, что не повредит читабельности/обслуживаемости).
Пожалуйста, обратитесь к этому ленивому экземпляру:
public sealed class Singleton
{
private Singleton()
{
}
public static Singleton Instance { get { return Nested.instance; } }
private class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly Singleton instance = new Singleton();
}
}
Нет частного свойства Instance
(я знаю, что оно неявное) - это то, что делает его ленивым - тот факт, что у нас нет сеттера в свойстве public static Singleton Instance
?
Lazy<T>
? взгляните на эту статью: msdn: отложенная инициализация - person Tim Schmelter   schedule 25.09.2012Lazy<Singleton>
: stackoverflow.com/a/6847882/284240 - person Tim Schmelter   schedule 25.09.2012