Diese
ist eindeutig nicht
scheint, als wäre es keine Best Practice. Kann jemand erklären, warum es keine Best Practice wäre oder wie das funktioniert? Bücher oder Artikel, die eine Erklärung liefern, würden geschätzt.Lokale Variablen mit Delegaten
//The constructor
public Page_Index() {
//create a local value
string currentValue = "This is the FIRST value";
//use the local variable in a delegate that fires later
this.Load += delegate(object sender, EventArgs e) {
Response.Write(currentValue);
};
//change it again
currentValue = "This is the MODIFIED value";
}
Der Wert, der ausgegeben wird, ist der zweite Wert "Modified". Welcher Teil der Compiler-Magie funktioniert? Ist das so einfach wie den Wert auf dem Heap zu verfolgen und später wieder abzurufen?
[Bearbeiten]: einige der Kommentare gegeben, einige der ursprünglichen Satz zu ändern ...
Es ist nichts falsch mit dieser Praxis. Es ist nur fortgeschrittener als Anfänger es verstehen würden. – leppie
abgeordnet; in der Tat kann es für sehr sauberes/elegantes Design sorgen - aber Sie müssen die Implikationen verstehen. –
Das ist wirklich sehr interessant. Ich würde nicht denken, dass es eine gute Übung wäre, mit lokalen Variablen im Rahmen des zugewiesenen Delegierten zu spielen, aber Sie lernen ständig etwas Neues. – Hugoware