В VB.Net есть два использования ключевого слова With
.
Первый - инициализация объекта. Это средство присвоения свойств или полей объекта в той же строке, что и выражение инициализации, без необходимости конкретного конструктора для каждой перестановки полей.
Dim x = New Product With {.Name = "Foo"}
Этот тип выражения может использоваться только для создания новых объектов. Его нельзя использовать для изменения существующих.
Второе использование - оператор With
. Это позволяет вам поместить объект в контекст, так сказать, и вызвать многих. Операции на нем без квалификации.
With x
Console.WriteLine(.Name)
.Match = 42
End With
Ни один из них, тем не менее, не позволит вам использовать существующий объект в качестве шаблона для создания нового объекта.