Moin,
mir schwebt folgende Syntax vor:
int trialCount = Parameter.GetValue<int>("TrialCount");
double destinationRadius = Parameter.GetValue<double>("DestinationRadius");
usw.
Die Werte liegen in der DB in einem nText Feld.
Das gecastet werden muss, ist klar.
Wie kann ich das möglichst flexible lösen?
Ansätze:
int trialCount = Parameter.GetTrialCount();
double destinationRadius = Parameter.GetDestinationRadius() ;
int trialCount = (int)Parameter.GetValue("TrialCount", typeof(int));
Wer hat da mal ≥ eine Idee für mich ?(
Gruß,
Carlo
Wenn du eine eindeutige Beziehung Parametername <=> Parametertyp hast, sind jeweils eigene Methoden empfehlenswert.
Nur falls deine Klasse allgemein auf unbekannte Typen mit unbekannten Namen losgelassen würde (beispielsweise zur Abfrage von INI-Dateien), würde ich
public static T GetValue<T>( string ValueName )
verwenden.
Die Parameter und Datentypen sind mir bekannt.
Ich wollte eigentlich nur vermeiden, dass ich für jeden neuen Parameter eine neue Methode fummeln muss.
public static T GetValue<T>( string ValueName )
Das sieht ja schon ganz nett aus, aber wie geht es weiter? Ich habe mich noch nicht generell mit Generics beschäftigt.
Gruß,
Carlo
Original von Rushmore
Das sieht ja schon ganz nett aus, aber wie geht es weiter?
Nun implementierst Du Deine Methode? Oder was meinst Du?
public static T GetValue<T>(string parameterKey)
{
T value;
// Der zu lesende Wert aus der DB ist nText bzw. string
string dbValue = DAL.Parameter.GetValueByParameterKey(parameterKey);
// jetzt muss dbValue noch irgendwie in den DatenTyp T gecastet werden
// wie stelle ich das an?
return value;
}
Gruß,
Carlo