Нет, они не одинаковы.
Ленивая инициализация переменной влияет только на эту переменную, она не делает класс одиночным или даже повторно использует экземпляры между переменными.Например, если у вас есть две переменные типа Lazy<MyClass>
, они все равно будут создавать отдельные экземпляры класса.
Синглтон обычно использует внутреннюю ленивую инициализацию, но это не обязательно.Это также можно реализовать с помощью ранней инициализации и просто вернуть уже созданный экземпляр.