Несколько вещей не так с предыдущими комментариями. Джоэл в основном правильный ответ, с одной маленькой оговоркой:
Когда вы определяете форму, вы получаете автоматический экземпляр формы с тем же именем, что и у типа.
Вы на самом деле получаете экземпляр только тогда, когда вызываете его. До этого экземпляр по умолчанию не создается. Таким образом, создание экземпляра откладывается до момента использования.
Использование имени формы в качестве экземпляра на самом деле является ярлыком для My.Forms.Formname
, который представляет собой сгенерированный компилятором список свойств для всех форм. Эти свойства отвечают за создание объекта. К сожалению, Microsoft решила сделать эти свойства неявно доступными в глобальном масштабе (отсюда и вопрос ОП).
Эта функция существует, потому что VB.NET эмулирует метод VB6, позволяющий ссылаться на экземпляр формы по умолчанию через его имя.
Хорошо. Хотя эта функция основана на предыдущих версиях VB, она не является прямой. VB 7 не было этого. Скорее это было повторно введено с VB 8 (= VB 2005).
Действительно очень глупая "фича"
На самом деле это очень полезная функция, которая очень хорошо сочетается с философией разработки RAD в VB. Как упомянуто выше, к сожалению, такой свободный обзор используется. Но кроме этого, мне было бы очень интересно услышать, что такого "глупого" в этой функции.