Statische Virtuelle Methoden / Felder Sperre umgehen

Danielku15

Erfahrenes Mitglied
Hallo.
Ich habe folgendes Problem. Ich möchte für meine abstrakte BasisKlasse ein statisches Feld anbieten. (Regex-Code zur Validierung).
Nur habe ich das Problem dass bei den abgeleiteten Klassen diese Regex-Codes sich voneinander unterscheiden.

Bsp:
Ich habe die abstrakte Basisklasse MySqlDataType mit dem Statischen Feld ValidationRegexPattern. Mit diesem Regex-Code validiere ich eine Spaltendefinition. Nur ist diese Spaltendefinition bei jedem Datetyp unterschiedlich Also es kann bei dem Datentyp Integer z.b.
NCONTENTID INTEGER UNSIGNED NOT NULL
aber auch
NCONTENTID INTEGER(10) ZEROFILL NULL
richtig sein.
Bei BLOB sieht das ganze wieder anders aus. Nur sind die nicht Instanzbezogen. Gibts nun ne gute Möglichkeit ein statisches Feld anzubieten welches ich bei jeder Subklasse neu belegen kann. Jedoch sollte das Feld readonly sein. Virtuelle Statische Member sind jedoch gesperrt:
http://msdn2.microsoft.com/de-de/library/9fkccyh4(VS.80).aspx hat gesagt.:
Der virtual-Modifizierer kann nicht zusammen mit den Modifizierern static, abstract, private oder override verwendet werden.

Ein Interface kann ich nur schlecht definieren da die Basisklasse doch noch Funktionalität definiert welche auf alle Typen zutrifft. Natürlich könnte ich eine Basisklasse und ein Interface definieren. Aber so umständlich kann das doch nicht sein, und für 1 Feld ein Interface?
Ich hoffe jemand von euch weiß da eine Lösung.

gruß Daniel
 
Dann kann ich aber den Polymophismus abschrieben. Wenn ich dann eine MySQLDatatype-Eigenschaft in meiner MySQLColumn habe. Dann bekomme ich beim abrufen des Regex-Wertes immer den Wert der MySQLDatatype Klasse.
 
Ich bin drauf gekommen dass mein Vorhaben in meinem Fall eigentlich sinnlos ist. Denn wie will ich auf Statische Methoden zugreifen wenn ich eine Liste von Column Instanzen vorliegen habe? Hab wieder mal nicht ganz weitergedacht. Also Thema abgeschlossen.
 

Neue Beiträge

Zurück