关于将对象转换为相同类型的性能问题(一开始可能听起来很奇怪,但让我放在上下文中)
public T Get<T>(string key) where T : class
{
var objToReturn = (T)_cache[key];
if (objToReturn != null)
{
return objToReturn;
}
return null;
}
上面的代码片段是尝试从调用方强类型定义的 "CacheObject" 中获取一个类型为 "T" 的对象。
由于对象的类型是强类型定义的,因此我想知道以下行的含义:
var objToReturn = (T)_chache[key];
这个操作会触发将缓存中的一个实例转换成另一个实例并返回吗?还是类型相同,强制转换被忽略了?
我问这个问题是因为在后面的开发中,强制转换会对获取派生类型非常有用,但我不想在早期培养一个潜在的重大性能问题。
请您给予思考,谢谢。
return _cache[key] as T;
。 - Andreas Grech