In C#3.0 grazie agli object initializers è possibile creare un istanza e inizializzarla in questo modo:
C#3.0
1: class Person{
2: public int Age;
3: public string Name;
4: public readonly Address Address=new Address();
5: }
6:
7: Person p1 = new Person { Name = "Corrado", Age = 99 Address = { Cap = 24100, City = "Bergamo" } };
Peccato che la stessa cosa non sia possibile in VB9, nello specifico VB9 non supporta l'inizilizzazione di proprietà/fields read-only, quindi in VB9 l'inizializzazione è possibile solo se la classe è definita in questo modo:
VB9
In compenso VB9 permette di definire Anonymous Types che non sono read-only (come C#3.0), la definizione delle proprietà read-only avviene attraverso una keyword Key.
C#3.0
VB9
Personalmente avrei preferito avere lo stesso set di features...