如何将“使用”类型的对象传递给函数?

时间:2009-10-30 04:05:04

标签: c# oop static using

我的代码如下:

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;
}

但它仍无法正常工作

2 个答案:

答案 0 :(得分:3)

这与using语句无关。您正在尝试从Main调用非静态成员函数,这是静态的。你不能这样做,因为'f'是一个实例方法,即你必须在你的Program类的实例上调用它。所以,你需要让你的函数变为静态。

答案 1 :(得分:2)

f是一个实例方法,可能是在Program类中,对吧?如果从Main调用f,则没有Program的实例,因为Main是静态方法。将f更改为静态:

static void f(DC dc, int a) { ... }