Да, это законно (но вопрос в заголовке отсутствует, см. ниже для более подробной информации).
Хотя, это может быть мудрым, чтобы проверить, что тип в кэше, что вы ожидаете, вместо того, чтобы сделать эту проверку в два раза, например:
//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
- это тот случай?
UPDATE:
Для решения комментарий, проверьте комментарии я добавил в код.
Извините, что делает «Cache [key] как MyExpectedReferenceType« делать? – locoboy
@ cfarm54: Смотрите мое обновление. –
ха-ха, это на самом деле намного проще, чем я думаю, вы думаете. все, что я пытаюсь сделать, это выяснить, существует ли кеш или нет, и если он существует, используйте его ... – locoboy