我有一个看起来像这样的代码:

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) { ... }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top