Что означает эта строка с автоматически реализуемыми свойствами со статическим классом?

Я следую инструкциям по тестированию функции Azure здесь, и я наткнулся на эту строку кода:

public static NullScope Instance { get; } = new NullScope();

Я прочитал этот ответ SO, поэтому я понимаю автоматически реализуемые свойства, но я не знаю, как это сочетается с ключевым словом static.

Это просто создание нового Nullscope, к которому вы можете только получить доступ, но не установить? Или это создает новый NullScope каждый раз, когда вы его get используете? Если возможно, не могли бы вы расширить строку кода для лучшего понимания?


person Jeremy W    schedule 29.04.2019    source источник
comment
это свойство только для чтения, которое каждый раз возвращает одну и ту же ссылку.   -  person Daniel A. White    schedule 29.04.2019
comment
Первый: он создает экземпляр при самом первом доступе к классу, содержащему свойство, и устанавливает его значение в экземпляр. Он будет практически доступен только для чтения.   -  person ZorgoZ    schedule 29.04.2019
comment
что в основном реализация шаблона Singleton   -  person Rahul    schedule 29.04.2019
comment
Может кто-нибудь объяснить отрицательные голоса и как я могу улучшить этот вопрос в следующий раз?   -  person Jeremy W    schedule 29.04.2019


Ответы (1)


Это просто создание нового Nullscope, к которому вы можете только получить доступ, но не установить?

Да, точно.

Или это создает новый NullScope каждый раз, когда вы его получаете?

Нет, это будет выглядеть примерно так:

public static NullScope Instance
{
    get => new NullScope();
}

Обратите внимание, что первый имеет стандартный автоматически реализуемый геттер и использует относительно новый синтаксис для установки значения для автоматически реализуемого резервного члена, тогда как последний использует настраиваемый геттер, который является просто «членом с телом выражения», который при вызове возвращает объект.

person David    schedule 29.04.2019