Мне просто любопытно, почему атрибуты класса / свойства в VB.NET имеют странный необязательный синтаксис, такой как:
<TestAttr("a", "abc", Optional1:="foo", Optional2:=3)>
VB.NET позволяет вам устанавливать такие необязательные параметры, чтобы избежать ограничений на заказ (что приятно), но в этом случае это заставляет вас.
Например, это невозможно:
<TestAttr("a", "abc", "foo", 3)>
, хотя параметры находятся в том же порядке, что и исходное определение.
Есть ли для этого веские причины? Или это просто .NET дизайнеры были ленивы на эту тему?