VB.NET Produktivität: Propertys

Grad les ich was für tolle neue Features C# 6 mit sich bringt. Auto-Property Initializers oder Object and Collection Initializers. Im wesentlichen geht es darum um kürzere und lesbare Syntax.

Allerdings verwende ich diese Art schon sehr lange, also ist es keine Neuerung von VB.NET 14. Mein Eindruck war ja schon immer, das die C# Programmierer der ersten Stunde leicht hochnäsig auf uns Basic Pragmatiker herunterblickten. Ein Interface dort ein Interface da, ich brauche diese recht selten. Anyway, der Krieg ist geschlagen und wir haben verloren. Nun assimiliert sich C# eben VB.

Eine recht langweilige und anspruchslose Aufgabe ist es Eigenschaften in Klassen zu definieren. Visual Studio hilft per PROP TAB TAB

prop

Wer nach Codezeilen bezahlt wird, liebt solche Funktionen.

   1:  Class person
   2:      Private _id As Integer
   3:      Public Property id() As Integer
   4:          Get
   5:              Return _id
   6:          End Get
   7:          Set(ByVal value As Integer)
   8:              _id = value
   9:          End Set
  10:      End Property
  11:  End Class

Ich liebe kurzen Code und schreibe statt einem Schlüsselwort ala public einfach property.

   1:  Class person
   2:      Property id As Integer
   3:  End Class

Wenn ID nun vorbelegt werden soll, was die Klasse sicherer in der Anwendung macht, verwendete den C# Guy den Konstruktur, nun den Property Initializer, wie wir VB Maus Schubser eben.

   1:  Class person
   2:      Property id As Integer = 0
   3:  End Class

In C# und VB.NET nutzt Get und Set. Durch weglassen des Set wurde ein Readonly Property erzeugt, der Wert muss allerdings im Konstruktor zugewiesen werden. Dieses ist in Vb14 nun als Schlüsselwort Readonly für Eigenschaften zulässig mit obiger Syntax.

Für beide Programmiersprachen ist neu,  Readonly Propertys können nun Lambda Expression zugewiesen werden.

 

Über dieses Thema schreibt Scott Guthrie bereits 2010.

Was ist neu in C#6? 2015

Was ist neu in VB 14? 2015

Kommentare sind geschlossen