Как уже говорили другие, это ограниченный общий параметр.Но никто еще не обратился к этой части вашего вопроса:
почему это сделано так
Ответ в действии.Если бы он был просто объявлен как элемент управления, вы бы не смогли сделать что-то подобное, потому что не все элементы управления имеют свойство .Text *:
MyFunction(MyTextBox, Function(t) t.Text = "new value" )
Телофункция просто должна знать, что она работает над каким-либо элементом управления, но действие (Of T), которое вы передаете функции, может захотеть узнать фактический тип элемента управления.
Да,все элементы управления имеют свойство .Text.Давайте на мгновение представим, что некоторые не