Ho bisogno di controllare se il cookie è presente con valore o meno. Ma mi chiedo se c'è un modo rapido e valido per farlo, dal momento che se devo controllare 3 cookie, mi sembra male controllare con if
o try
.Come verificare se i cookies sono vuoti o meno
Perché non assegna una stringa vuota alla mia variabile se il cookie non è presente? Invece mostra Object reference not set to an instance of an object.
Il mio codice (che funziona, ma sembra troppo grande per questo compito, penso che ci dovrebbe essere un modo migliore di fare questo)
// First I need to asign empty variables and I don't like this
string randomHash = string.Empty;
string browserHash = string.Empty;
int userID = 0;
// Second I need to add this huge block of try/catch just to get cookies
// It's fine since I need all three values in this example so if one fails all fails
try
{
randomHash = Convert.ToString(Request.Cookies["randomHash"].Value);
browserHash = Convert.ToString(Request.Cookies["browserHash"].Value);
userID = Convert.ToInt32(Request.Cookies["userID"].Value);
}
catch
{
// And of course there is nothing to catch here
}
Come potete vedere ho questo enorme bloccare solo per ottenere i cookie. Quello che vorrei è qualcosa di simile:
// Gives value on success, null on cookie that is not found
string randomHash = Convert.ToString(Request.Cookies["randomHash"].Value);
string browserHash = Convert.ToString(Request.Cookies["browserHash"].Value);
int userID = Convert.ToInt32(Request.Cookies["userID"].Value);
Edit Forse posso in qualche modo l'override del metodo .Value
di mio gradimento?
Forse questo non è ideale, ma non c'è davvero nulla di "enorme" in questo blocco di codice. –
Ancora mi piacerebbe usare il secondo. Se questo è l'unico modo che va bene, ma mi sembra che ce ne dovrebbe essere uno migliore. – sed
Ok, potresti usare qualcosa come 'Convert.ToString (Request.Cookies [" randomHash "]! = Null? Request.Cookies [" randomHash "]. Valore:" ");' per riga, ma che dà solo linee più lunghe . –