With : EndWith
With <expression> ... EndWith
Описание
Блоки With : EndWith можно использовать с полями структур, с целью уменьшить количество кода и улучшить его читаемость. Это - директива компилятора и работает так же к macro, т.е. заданное выражение автоматически вставляется перед любым символом обратного слэша '\', перед которым нет пробела или символа операции. Код ведёт себя совершенно так же, как его версия с подстановками. Блоки With : EndWith нельзя вкладывать друг в друга, так как это может вызвать ошибки, которые трудно отслеживать в условиях, когда несколько операторов были неявно заменены.
Пример
Structure Person Name$ Age.l Size.l EndStructure Friend.Person With Friend \Name$ = "Yann" \Age = 30 \Size = 196 Debug \Size+\Size EndWith
Пример: Сложный пример
Structure Body Weight.l Color.l Texture.l EndStructure Structure Person Name$ Age.l Body.Body[10] EndStructure Friend.Person For k = 0 To 9 With Friend\Body[k] \Weight = 50 \Color = 30 \Texture = \Color*k Debug \Texture EndWith Next