Sì, questo è legale (ma la domanda nel titolo non è, vedere sotto per i dettagli).
Anche se, può essere saggio per verificare che il tipo nella cache è quello che ci si aspetta, piuttosto che dover fare questo controllo due volte, come ad esempio:
//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!
}
On rileggendo la tua domanda se e pensando al tuo programma non funziona correttamente, sono tentato di dire che hai problemi più grandi di questo; come il tuo programma non funziona correttamente? L'istanza Cache
non sarà mai null
mentre è accessibile: è un campo di sola lettura di Page
. Tuttavia, il valore memorizzato nella cache potrebbe essere null
e, se questo è il problema, dovresti ricevere un NullReferenceException
- è il caso?
UPDATE:
Per affrontare i suoi commenti, controllare i commenti che ho aggiunto al codice.
fonte
2011-04-06 08:42:02
scusa, cosa fa "Cache [chiave] come MyExpectedReferenceType"? – locoboy
@ cfarm54: vedere il mio aggiornamento. –
haha, in realtà è molto più semplice di quello che penso tu stia pensando. tutto quello che sto cercando di fare è capire se esiste una cache o no e se esiste usarlo ... – locoboy