Ich habe eine Hilfsmethode, die einen stark typisierten Wert von einem alten .INI
Konfigurationsdateityp zurückgibt, mit der UnterschriftCast String.Empty zu (generisch) T in C#?
internal static T GetIniSetting<T>(string config, string key, T defVal = default(T))
ich Strings, dass sein will speziell, ich den Standardwert für default möchte zu sein string.Empty
, nicht default(string)
(dh null), wenn der Coder keinen Standardwert angegeben hat.
if (cantFindValueInIniFile == true)
{
if ((typeof(T) == typeof(string)) && (defaultValue == null))
{
// *** Code needed here - Cannot convert string to <T>***
return (T)string.Empty;
}
return defaultValue;
}
Ich habe hart Casting versucht, und das as
Schlüsselwort, ohne Erfolg.
Unter Berufung auf die Kräfte des LSP schien nicht sehr passend für diesen speziellen Fall ... –