Да, это законно (но вопрос в названии не так, подробности см. Ниже).
Хотя, может быть, стоит проверить, что тип в кеше соответствует ожидаемому.вместо того, чтобы выполнять эту проверку дважды, например:
//in English, the following line of code might read:
// if the item known in the cache by the specified key is in
// in fact of type MyExpectedReferenceType, then give me it
// as such otherwise, give me a null reference instead...
var myCachedInstance = Cache[key] as MyExpectedReferenceType;
if (myCachedInstance == null)
{
//we retrieved a reference to an instance of an MyExpectedReferenceType
}
else
{
//oh, no - we didn't!
}
Перечитав свой вопрос и подумав о том, что ваша программа не работает должным образом , я испытываю желание сказать,у вас есть большие проблемы, чем это; как ваша программа работает неправильно?Сам экземпляр Cache
никогда не будет null
, пока доступен - это поле только для чтения Page
.Однако ожидаемое кешированное значение может быть null
, и, если это является проблемой, вы должны получить NullReferenceException
- так ли это?
ОБНОВЛЕНИЕ:
Для решения вашей проблемыкомментарий, проверьте комментарии, которые я добавил к коду.