WITH...END WITH
La parola-chiave WITH indica una struttura di controllo che consente di raccogliere più risorse di una Classe, evitando che sia ripetuta per ciascuna di quelle risorse l'identificatore dell'Oggetto della Classe.
Detta struttura di controllo termina con la parola chiave End... With.
All'interno della struttura "With...End With" le risorse della Classe sono impostate e precedute dal consueto Operatore, avente come simbolo il punto (.).
La sintassi può essere esplicitata come segue:
WITH identificatore_di_un_Oggetto .Proprietà = ... .Metodo(...) .Etc END WITH
Uso nella creazione di un Oggetto di una Classe
La struttura "With...End With" può essere utilizzata proficuamente anche all'atto dell'istanziazione da codice di un Oggetto di una Classe:
WITH identificatore_di_un_Oggetto = New Classe As "Gruppo_degli_Eventi" .Proprietà = ... .Metodo(...) .Etc END WITH
Mostriamo un esempio pratico, nel quale si imposteranno alcune risorse di una Label, usando la struttura "With...End With":
Public Sub Form_Open() Dim Label1 As Label With Label1 = New Label(Me) As "Label1" .X = 10 .Y = 10 .W = 100 .H = 100 .Background = Color.Yellow .Adjust() End With End
Introdurre un'istruzione estranea alla Classe
E' possibile inserire nella struttura di controllo anche un'istruzione particolare, estranea alla Classe cui fa riferimento l'Oggetto in questione, per ottenere ad esempio il valore della Proprietà dell'Oggetto o ritornato da un Metodo:
Public Sub Form_Open() Dim Label1 As Label With Label1 = New Label(Me) As "Label1" .X = 10 .Y = 10 .W = 100 .H = 100 .Background = Color.Yellow Print .Background End With End
Accesso ai vettori
La struttura "With...End With" può essere utilizzata anche come scorciatoia per l'accesso all'array:
With array .[0] = "Primo inserimento" .[1] = "Secondo inserimento" End With