In VBA gibt es vorbereite Datentypen für Variablen. So gibt es Variablen vom Typ String oder Date oder auch Integer. Diese Typen gibt es bereits seit Jahren - und seit Jahren hat sich daran nichts geändert.
Was sich in den letzten Jahren aber geändert hat, ist das Umfeld. Es gibt andere Programmiersprachen in denen Variablen eine Reihe nützlicher Eigenschaften und Methoden haben.
Wenn ich mir beispielsweise JavaScript anschaue, dann ist dort der String kein Datentyp sondern eine Klasse. Dieses Vorgehen hat einige Vorteile. So kann eine Variable vom Typ String direkt Methoden haben.
Das .Net-Framework kennt seit der Version 3.5 die so genannten Extensions. Damit ist es möglich, einem Datentyp Eigenschaften und Methoden zuzuweisen. Jede Variable, die von diesem Datentyp deklariert wird, hat diese Eigenschaften und Methoden automatisch - ohne dass der Programmierer etwas tun muss.
Angeregt durch einen Vortrag von Michael Zimmermann erstellten verschiedene Programmierer Klassenmodule für „eigene“ Datentypen. Auch ich möchte so etwas mit VBA realisieren. Dazu dient dieses Projekt. Mit den TM-SmartTypes möchte ich Klassen für Datentypen erstellen und diese mit nützlichen und coolen Eigenschaften und Methoden ausstatten.
Einen Vorteil in diesen Vorgehen sehe ich später beim Coden. Heute muss ich mir alle Funktionen merken, mit denen ich meine Variablen bearbeiten möchte. Später kann ich nach dem Namen einer Variablen einen Punkt eintippen und ich erhalte über IntelliSense eine Liste der zur Verfügung stehenden Eigenschaften und Methoden angezeigt. Außerdem erwarte ich mir kürzeren und damit auch lesbareren Code.
Die einzelnen Eigenschaften und Methoden werde ich jeweils in einem Beitrag hier im Blog vorstellen. Dabei möchte ich auch aufzeigen, wie sich das neue Feature beim Code schreiben auswirkt. Dazu möchte ich jeweils eine kleine Aufgabe mit den herkömmlichen Mitteln lösen und dann aufzeigen, wie sich die selbe Aufgabe mit den TM-SmartTypes lösen lässt.
Als erstes werde ich mir den Datentyp String vornehmen. Hier habe ich bereits ein paar sehr konkrete Ideen im Kopf. Doch bevor ich mich den coolen Features widmen kann, ist erst noch etwas Grundlagenarbeit zu leisten.
Zum Schluss noch ein wichtiger Punkt: Dieses Projekt soll nicht nur mein Projekt sein. Ich bin grundsätzlich offen für Anregungen. Wenn ihr Vorschläge habe, was realisiert werden sollte, dann lasst es mich wissen. Ich werden eure Anregungen in das Projekt einfließen lassen.
Keine Kommentare:
Kommentar veröffentlichen