Например, в приложении MVC я могу использовать Html-помощники для создания метки, подобной этой:
@Html.LabelFor(m => m.ProductName)
Я нигде не объявил переменную "m", но IDE автоматически выясняет, что я пытаюсь сделать. Это несколько смущает, что IDE знает о моем коде больше, чем я. Я бы хотел это исправить.
Я в основном хочу знать, как он знает, как ссылаться на мою модель.
РЕДАКТИРОВАТЬ: Спасибо за все ответы.
Итак, "Html" является экземпляром HtmlHelper. «HTML» является членом базового класса ViewPage. Его значение задается в методе InitHelpers () базового класса ViewPage. Конструктор HtmlHelper принимает ViewContext из ViewPage в качестве параметра. ViewContext знает, какую модель я использую. LabelFor - это метод расширения класса HtmlHelper. И именно поэтому лямбда-выражение знает, как ссылаться на мою модель.
Точки связаны. Спасибо!