我的代码如下:
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;
}
但它仍无法正常工作
答案 0 :(得分:3)
这与using语句无关。您正在尝试从Main调用非静态成员函数,这是静态的。你不能这样做,因为'f'是一个实例方法,即你必须在你的Program类的实例上调用它。所以,你需要让你的函数变为静态。
答案 1 :(得分:2)
f是一个实例方法,可能是在Program类中,对吧?如果从Main调用f,则没有Program的实例,因为Main是静态方法。将f更改为静态:
static void f(DC dc, int a) { ... }