вопрос относительно выполнения отливки объекта к тому же типу (я знаю, что звучит странно на первый, но позвольте мне поставить его в контексте)Кастинг объект того же типа и влияния на производительность
public T Get<T>(string key) where T : class
{
var objToReturn = (T)_cache[key];
if (objToReturn != null)
{
return objToReturn;
}
return null;
}
Вышеприведенный фрагмент кода для попытки получить объект типа T
из CacheObject
, где тип строго типизирован вызывающим.
Знаешь, видя, как тип объекта сильно типизированных, я задаюсь вопросом о линии:
var objToReturn = (T)_chache[key];
Будет ли это на самом деле ссылаться на бросок и преобразовать экземпляр в кэше другого экземпляра и вернуть ту или воли типы будут считаться одинаковыми для просто игнорируемых.
Я спрашиваю, как способность к приведению будет полезной для более поздней разработки приложения, которое используется в этом кеше для получения производных типов, но я не хочу размножаться в потенциально значительном ранжировании производительности.
Мысли и спасибо.
Основываясь на реализации вашего тела метода, он может быть реорганизован в одну строку: 'return _cache [key] as T;'. –
@AndreasGrech: Нет, определенно нет, из-за возможности исключений - см. Мой ответ на ваш комментарий в моем ответе. –