Szenario ist eine Objektreferenz erforderlich:
Betrachten Sie den folgenden Code:
private static void SumData(object state) { // Calling a non-static member from a static method setTextboxText(result); }
Erläuterung:
Der Fehler "CS0120" tritt auf, wenn Sie versuchen, auf ein nicht statisches Mitglied zuzugreifen (( Feld, Methode oder Eigenschaft) aus einem statischen Kontext. In diesem Fall ist die setTextBoxText-Methode ein nicht statisches Mitglied der Form1-Klasse und kann nicht aus der statischen Sumdata-Methode zugegriffen werden.
Machen Sie das nicht statische Mitglied statisch:
static void setTextboxText(int result) { // Implementation details }
class Form1 { public static Form1 It; public Form1() { It = this; } private static void SumData(object state) { Form1.It.setTextboxText(result); } }
private static void SumData(Form1 form, object state) { form.setTextboxText(result); }
private void SumData(object state) { setTextboxText(result); }
statische Mitglieder können nur auf andere statische Mitglieder zugreifen. Nichtstatische Mitglieder können sowohl auf statische als auch nicht statische Mitglieder zugreifen. Greifen Sie auf das nicht statische Mitglied zu.
Das obige ist der detaillierte Inhalt vonWarum tritt 'CS0120: Eine Objektreferenz erforderlich ...' auf, wenn Sie eine nicht statische Methode aus einer statischen Methode aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!