c# statische Methode kann nicht auf die Fehler und Lösungen von nicht -statischen Mitgliedern zugreifen
verwiesen Das folgende Codefragment zeigt dieses Problem:
Die Ursache des Problems
namespace WindowsApplication1 { public partial class Form1 : Form { ... private static void SumData(object state) { ... setTextboxText(result); // 错误:非静态字段、方法或属性 } } }
Fehlerinformationen zeigen, dass statische Methoden versuchen, nicht -statische Mitglieder
aufzurufen. Statische Methoden können nur auf statische Mitglieder zugreifen, und nicht statische Mitglieder benötigen einen Hinweis auf Objekte, zu denen gehören.
SumData
<决> Lösung setTextboxText
Es gibt viele Möglichkeiten, diesen Fehler zu lösen:
<<> Stellen Sie die-Methode als statisch fest:
setTextboxText
Wenn die <然> -Methode jedoch auf Instanzvariablen zugreifen muss, kann sie nicht auf statisch eingestellt werden.
public static void setTextboxText(int result)
setTextboxText
auf
Form1
. setTextboxText
class Form1 { public static Form1 Instance; // 单例 ... private static void SumData(object state) { ... Instance.setTextboxText(result); } }
Form1
Instance
Instance = this;
Wenn die <实> -Instanz bereits vorhanden ist, ist diese Methode möglicherweise nicht anwendbar.
Form1
): private static void SumData(object state) { ... Form1 frm1 = new Form1(); frm1.setTextboxText(result); }
Dies ist normalerweise die beste Lösung, da es die Einkapselung und Wartung des Codes beibehält. Form1
Das obige ist der detaillierte Inhalt vonWarum kann eine statische Methode in C#keine statischen Mitglieder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!