Nicht verwenden lokale Variablen, bevor es deklariert ist ASP.NET
Ich habe einige code wie dieser:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save([Bind(Prefix="")]Person person)
{
String s = person.property;
/* ... */
}
Aber es wirft den Fehler: "kann Nicht verwenden Sie die lokale variable 'person', bevor es deklariert ist".
Was einfaches, was bin ich?
InformationsquelleAutor Matt Mitchell | 2008-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es sehr wahrscheinlich, dass Sie erhalten diesen Fehler, da die gleiche variable wird deklariert, die später in der selben code-block.
Laut compiler-Regeln, eine variable Bezug genommen wird, beziehen sich auf die Standardeinstellung, indem Sie eine passende Erklärung innerhalb der gleichen block, AUCH WENN DIE GLEICHE ERKLÄRUNG EXISTIERT AUßERHALB DES BLOCKS IN LOGISCHEN UMFANG FLIEßEN.
Also kurz überprüfen, um zu sehen, wenn die variable nicht erklärt wird, später(ein paar Zeilen nach unten) in der gleichen Anwendung zu blockieren.
Danke. Es ist in Momenten wie diesen, fühlt man sich dumm. Sollte überprüft mein code!
InformationsquelleAutor
Okay, das ist nur einige wirklich bizarre Fehler, wenn die variable mit dem Namen eine bestimmte Namen funktioniert es nicht, für keine anderen Namen, es funktioniert...
Fair genug, ich nahm an, es war etwas, was ich Tat, speziell falsch und nicht anwendbar auf andere.
InformationsquelleAutor Matt Mitchell
Ich hatte das gleiche problem mit einem deklarierten Variablen mit dem Namen endingYear.
Erklärt hier:
Weiter entlang in der Methode war dies kein problem:
Aber wenn ich auf die gleiche varable in einer Case-Anweisung hab ich das "Nicht verwenden lokale Variablen, bevor es deklariert ist" Fehler-auch du die variable wurde in intelesense:
Basierend auf Matt ' s Ergebnis habe ich versucht, die änderung der Variablen-Namen zu endYear und das problem ging Weg. Sehr merkwürdig und für eine Verschwendung von einer halben Stunde oder so. Wenn es war nicht für diesen thread von posts es wohl gewesen wäre, einen größeren Zeitverlust.
InformationsquelleAutor Frankie Lee