C# Kaedah statik tidak dapat mengakses kesilapan dan penyelesaian ahli bukan statik
Serpihan kod berikut menunjukkan masalah ini:
punca masalah
namespace WindowsApplication1 { public partial class Form1 : Form { ... private static void SumData(object state) { ... setTextboxText(result); // 错误:非静态字段、方法或属性 } } }
Maklumat ralat menunjukkan bahawa kaedah statik cuba hubungi ahli bukan statik
. Kaedah statik hanya boleh mengakses ahli statik, dan ahli bukan statik memerlukan rujukan kepada objek yang dimiliki.
SumData
<决> penyelesaian setTextboxText
Terdapat banyak cara untuk menyelesaikan kesilapan ini:
<<> Tetapkan kaedahsebagai statik:
setTextboxText
public static void setTextboxText(int result)
setTextboxText
Form1
setTextboxText
<调> Buat contoh class Form1 { public static Form1 Instance; // 单例 ... private static void SumData(object state) { ... Instance.setTextboxText(result); } }
Form1
Instance
Jika contoh <实> sudah wujud, kaedah ini mungkin tidak terpakai. Instance = this;
Form1
private static void SumData(object state) { ... Form1 frm1 = new Form1(); frm1.setTextboxText(result); }
Form1
Untuk maklumat lanjut, sila rujuk dokumen MSDN.
Atas ialah kandungan terperinci Mengapa kaedah statik tidak boleh mengakses ahli bukan statik di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!