题
我有一个看起来像这样的代码:
using (DC dc = new DC())
{
f(dc.obj, a);
}
void f(DC dc, int a)
{
...
dc.obj = a;
}
它不工作 - 抱怨对象引用和非静态字段。这是一个控制台应用程序,所以它有main()函数。我应该怎么做工作?我尝试添加的引用,因为它要求:
我有一个看起来像这样的代码:
using (DC dc = new DC())
{
f(ref dc.obj, a);
}
void f(ref DC dc, int a)
{
...
dc.obj = a;
}
,但它仍然没有工作
解决方案
这有什么好做的using语句。您正在尝试调用从主要非静态成员函数,这是静态的。你不能这样做,因为“F”是一个实例方法,即,必须调用它或从程序类的一个实例。所以,你需要让你的函数f静态的。
其他提示
f是一个实例方法,想必在程序类,是吗?如果您呼叫的主F,那么有没有计划的情况下,因为主要是一个静态方法。改变F至是静态的:
static void f(DC dc, int a) { ... }
不隶属于 StackOverflow