【发布时间】:2012-06-08 04:49:05
【问题描述】:
我有一个实用方法,它从旧的.INI 配置类型文件返回强类型值,带有签名
internal static T GetIniSetting<T>(string config, string key, T defVal = default(T))
我希望字符串是特殊的,因为我希望 defaultValue 的默认值为 string.Empty,而不是 default(string)(即 null),以防编码器没有t 指定了一个默认值。
if (cantFindValueInIniFile == true)
{
if ((typeof(T) == typeof(string)) && (defaultValue == null))
{
// *** Code needed here - Cannot convert string to <T>***
return (T)string.Empty;
}
return defaultValue;
}
我尝试过强制转换,以及 as 关键字,但无济于事。
【问题讨论】:
-
调用 LSP 的力量似乎不太适合这种特殊情况......