Ist es möglich, ähnliche Konstruktion zu schreiben?
Ich mag setzen, irgendwie, Standardwert für Argumente vom Typ T.Generische Methoden und optionale Argumente
private T GetNumericVal<T>(string sColName, T defVal = 0)
{
string sVal = GetStrVal(sColName);
T nRes;
if (!T.TryParse(sVal, out nRes))
return defVal;
return nRes;
}
Außerdem habe ich folgenden Link zu finden: Generic type conversion FROM string
Ich denke, muss dieser Code arbeitet
private T GetNumericVal<T>(string sColName, T defVal = default(T)) where T : IConvertible
{
string sVal = GetStrVal(sColName);
try
{
return (T)Convert.ChangeType(sVal, typeof(T));
}
catch (FormatException)
{
return defVal;
}
}
Ja, ich kann TryParse nicht anrufen. Aber vielleicht etwas ähnliches? Vielleicht fügen Sie dem Parameter type eine Einschränkung hinzu (ich meine 'wo: ...')? Wenn numerische Typen eine konvertierende Schnittstelle implementieren. – hardsky
Die CLR hat kein Konzept von "virtuellen statischen Methoden", der Compiler kann keine statischen Methoden von einem Typ ableiten. Soweit ich weiß, gibt es dafür keine saubere Lösung. –
http://stackoverflow.com/questions/196661/calling-a-static-method-on-a-generic-type-parameter für weitere Details –