- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
考虑:
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//int[] val = { 0, 0};
int val;
if (textBox1.Text == "")
{
MessageBox.Show("Input any no");
}
else
{
val = Convert.ToInt32(textBox1.Text);
Thread ot1 = new Thread(new ParameterizedThreadStart(SumData));
ot1.Start(val);
}
}
private static void ReadData(object state)
{
System.Windows.Forms.Application.Run();
}
void setTextboxText(int result)
{
if (this.InvokeRequired)
{
this.Invoke(new IntDelegate(SetTextboxTextSafe), new object[] { result });
}
else
{
SetTextboxTextSafe(result);
}
}
void SetTextboxTextSafe(int result)
{
label1.Text = result.ToString();
}
private static void SumData(object state)
{
int result;
//int[] icount = (int[])state;
int icount = (int)state;
for (int i = icount; i > 0; i--)
{
result += i;
System.Threading.Thread.Sleep(1000);
}
setTextboxText(result);
}
delegate void IntDelegate(int result);
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
为什么会出现这个错误?
An object reference is required for the nonstatic field, method, or property 'WindowsApplication1.Form1.setTextboxText(int)
最佳答案
看起来您正在从静态方法(特别是 SumData
)调用非静态成员(属性或方法,特别是 setTextboxText
)。您将需要:
也使被调用成员静态化:
static void setTextboxText(int result)
{
// Write static logic for setTextboxText.
// This may require a static singleton instance of Form1.
}
在调用方法中创建 Form1
的实例:
private static void SumData(object state)
{
int result = 0;
//int[] icount = (int[])state;
int icount = (int)state;
for (int i = icount; i > 0; i--)
{
result += i;
System.Threading.Thread.Sleep(1000);
}
Form1 frm1 = new Form1();
frm1.setTextboxText(result);
}
传入 Form1
的实例也是一种选择。
使调用方法成为非静态实例方法(Form1
):
private void SumData(object state)
{
int result = 0;
//int[] icount = (int[])state;
int icount = (int)state;
for (int i = icount; i > 0; i--)
{
result += i;
System.Threading.Thread.Sleep(1000);
}
setTextboxText(result);
}
可以找到有关此错误的更多信息 on MSDN .
关于c# - CS0120 : An object reference is required for the nonstatic field, 方法或属性 'foo',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498400/
所以,我正在做一个插槽项目,因为我想熟悉 java 图形库。该设置工作得相当完美。然后,我尝试画线测试图形,报错: engine.java:9: 无法从静态上下文中引用非静态方法 drawLine(i
我在 C++ 中有三个类:Project、Supervisor、Date。我正在尝试使用组合,但我遇到以下错误消息的错误: "Class Date "Date" is not a nonstatic
我正在尝试实现以下运算符: void operator=(const mpz_t &a, const myDatatype &b); 我需要此运算符将变量从 myDatatype 转换为来自 GMP
我收到错误“字段初始值设定项无法引用非静态字段”,而我的代码如下: Object selectedItem = PageVariables.slectedItemData; MyClass selec
我已经看到了许多关于此的文章,但是当定义了spme方法时,它们似乎都在解决。 应用背景:尝试制作一个基本的Sudoku游戏以掌握C++。 该错误似乎独立于主要功能.cpp文件,因此除非要求其简短说明,
我制作了一个 Block 类和一个 struct coords,在实现运算符时我遇到了错误: 'coords operator[](const Block&, const size_t&)' must
考虑: namespace WindowsApplication1 { public partial class Form1 : Form { public Form1
我正在尝试将一些用于测试的函数传递到 main() 节点中,如下所示。但是,我得到以下信息 non static member reference must be relative to a spec
我知道这个问题已经被问过很多次了,但我还是卡住了。我以为我明白这个错误是什么,而我显然不知道。 所以,我得到的错误是 a nonstatic member reference must be rela
我正在使用 PHP 代码,我对 C# 的经验不多,我修改了我的代码很多,但仍然遇到错误“字段初始值设定项无法引用非静态字段、方法, or property"at line number 34 为什么它
我不明白为什么 View 给我一个非静态成员引用必须相对于特定对象的错误。 CDrawView::Shape 是我在我的 CDrawView 上声明的枚举 enum shape{line, rect,
考虑: namespace WindowsApplication1 { public partial class Form1 : Form { public Form1
我已经看到了另一个像这样的问题的解决方案,但它对我没有任何帮助。在线 studMap[getName()].push_back(getGrade()); 我收到以下错误: A nonstatic me
我正在尝试创建一个调用默认构造函数的显式构造函数,但它说我没有。 class Paddle{ private: int x, y; int startX, startY; public
如果创建的对象变得统一,子类“RandomUniform”中的构造函数旨在重新初始化母类“RandomVar”的成员“mean”和“sigma”。但是我得到了错误:意思是,西格玛“不是非静态数据成员或
我想创建一个函数来雇用(创建一个新的类对象)一名新员工。我已经决定使用默认构造函数(如果不是很好的决定请纠正我)。 Employee::Hire(employees); 出现错误 #include
int CPMSifDlg::EncodeAndSend(char *firstName, char *lastName, char *roomNumber, char *userId, char *
在接下来的类(class)中,我在 enableAssistedSearch 方法中遇到以下三个编译器错误。 不能对非静态方法进行静态引用getSystemService(String) 来自类型 A
我正在开发一个 DLL 项目,我正在编写一个类,其中的变量和函数位于 header 中,定义位于 .cpp 文件中,如下所示: .h: #ifndef RE_MATH_H #define RE_MAT
我在 QtCreator 中使用英特尔 C++ 编译器和 qmake。在我的项目中,我使用 std::map。 std::map dataBase; dataBase[2] = 2.445; 此代码使
我是一名优秀的程序员,十分优秀!