Ich muss überprüfen, ob ein Cookie mit Wert vorhanden ist oder nicht. Aber ich frage mich, ob es eine schnelle und gute Möglichkeit gibt, dies zu tun, denn wenn ich 3 Cookies überprüfen muss, scheint es schlecht zu sein mit if
oder try
zu überprüfen.Wie überprüft man, ob Cookies leer sind oder nicht
Warum wird meiner Variablen kein leerer String zugewiesen, wenn kein Cookie vorhanden ist? Stattdessen zeigt es Object reference not set to an instance of an object.
Mein Code (es funktioniert, aber es scheint zu groß für diese Aufgabe, ich glaube, es sollte einen besseren Weg, dies zu tun)
// 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
}
Wie man sehen kann ich diese riesige haben blockieren, nur um Cookies zu erhalten. Was ich möchte, ist so etwas wie dieses:
// 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);
bearbeiten Vielleicht die .Value
Methode nach meinem Geschmack Ich kann irgendwie außer Kraft setzen?
Vielleicht ist das nicht ideal, aber es gibt wirklich nichts "Riesiges" an diesem Block Code. –
Noch würde ich gerne den zweiten verwenden. Wenn das der einzige Weg ist, aber es scheint mir nur, dass es einen besseren geben sollte. – sed
Okay, Sie könnten etwas wie 'Convert.ToString (Request.Cookies [" randomHash "]! = Null? Request.Cookies [" randomHash "]. Value:" ");' pro Zeile, aber das gibt nur längere Zeilen . –