シナリオにはオブジェクト参照が必要です:
>次のコードを検討してください:
private static void SumData(object state) { // Calling a non-static member from a static method setTextboxText(result); }
説明:
非静的メンバーにアクセスしようとするとエラーが発生します(cs0120 "が発生します(静的コンテキストからのフィールド、方法、またはプロパティ)。この場合、SettextboxtextメソッドはForm1クラスの非静的メンバーであり、静的SumDataメソッドからアクセスできません。
非静的なメンバーを静的にする:
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); }
静的メンバーは他の静的メンバーのみにアクセスできます非静的なメンバーは静的メンバーと非静的メンバーの両方にアクセスできます。
以上が「CS0120:オブジェクト参照が必要なのはなぜですか...」は、静的メソッドから非静的な方法を呼び出すときに発生するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。