Как говорили другие, вам придется писать
Test2.Subroutine(Test.AnObject)
Это хороший пример того, почему стоит быть немного осторожным с конструкцией With
в VB.Net. Я считаю, что для того, чтобы его вообще стоило использовать, вам действительно нужно установить более одного или двух свойств и/или вызвать более одного или двух методов для объекта в операторе With
.
Когда их много, и вы не чередуете .SomeProperty =
или .DoSomething
с другими вещами, это очень помогает улучшить читаемость.
И наоборот, несколько точек, разбросанных среди множества других вещей, на самом деле намного труднее читать, чем вообще не использовать With
.
В этом случае .
символы сами по себе могли бы легко потеряться визуально, хотя, конечно, это было бы синтаксически согласовано.
Я думаю, они просто решили не реализовывать это. VB на самом деле не тот язык, где они хотят поощрять односимвольные языковые элементы, и, как активный пользователь VB.Net, я в целом согласен с этим.
Итог: если вы используете предложение With
со многими содержащимися элементами, необходимость ссылаться на сам объект не такая уж большая проблема. Если вы используете его только с одним или двумя, возможно, лучше вообще не использовать предложение With
.
person
ChrisA
schedule
04.03.2010