[英]How to cast generic TYPE in right way?
我有这样的方法
public TYPE GetParam<TYPE>(ICacheKey key)
{
var result = default(TYPE);
if (typeof(TYPE) == typeof(string))
{
result = m_AppConfigCache.GetParamString(key.GroupName, key.Key);
}
else if (typeof(TYPE) == typeof(bool))
{
result = m_AppConfigCache.GetParamBool(key.GroupName, key.Key);
}
return result;
}
所以,我检查类型是否是(例如)字符串,如果是,我必须调用一个方法,如果类型是 bool 那么另一个
这种方法
m_AppConfigCache.GetParamString(key.GroupName, key.Key)
返回字符串,但我收到一个错误,即 TYPE 不是字符串并且无法强制转换...
问题是——怎么做?
如果您首先将返回的对象转换为object
,然后转换为TYPE
,则可以编写这样的方法:
public TYPE GetParam<TYPE>(ICacheKey key)
{
if (typeof(TYPE) == typeof(string))
{
return (TYPE)((object)m_AppConfigCache.GetParamString(key.GroupName, key.Key));
}
else if (typeof(TYPE) == typeof(bool))
{
return (TYPE)((object)m_AppConfigCache.GetParamBool(key.GroupName, key.Key));
}
return default(TYPE);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.