Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过;使用-为函数键入对象?_C#_Oop_Static_Using - Fatal编程技术网

C# 如何通过;使用-为函数键入对象?

C# 如何通过;使用-为函数键入对象?,c#,oop,static,using,C#,Oop,Static,Using,我有一个如下代码: using (DC dc = new DC()) { f(dc.obj, a); } void f(DC dc, int a) { ... dc.obj = a; } using (DC dc = new DC()) { f(ref dc.obj, a); } void f(ref DC dc, int a) { ... dc.obj = a; } 它不工作-抱怨对象引用和非静态字段。这是一个控制台应用程序,因此它具

我有一个如下代码:

using (DC dc = new DC())
{
    f(dc.obj, a);
}


void f(DC dc, int a)
{
    ...
    dc.obj = a;
}
using (DC dc = new DC())
{
    f(ref dc.obj, a);
}


void f(ref DC dc, int a)
{
    ...
    dc.obj = a;
}
它不工作-抱怨对象引用和非静态字段。这是一个控制台应用程序,因此它具有Main()函数。我该怎么做?我试着按要求添加参考资料:

我有一个如下代码:

using (DC dc = new DC())
{
    f(dc.obj, a);
}


void f(DC dc, int a)
{
    ...
    dc.obj = a;
}
using (DC dc = new DC())
{
    f(ref dc.obj, a);
}


void f(ref DC dc, int a)
{
    ...
    dc.obj = a;
}

但它仍然不起作用

这与使用语句无关。您正试图从Main调用一个非静态成员函数,它是静态的。您不能这样做,因为“f”是一个实例方法,也就是说,您必须在程序类的实例上或从中调用它。因此,您需要将函数设为静态。

这与using语句无关。您正试图从Main调用一个非静态成员函数,它是静态的。您不能这样做,因为“f”是一个实例方法,也就是说,您必须在程序类的实例上或从中调用它。因此,您需要将函数f设置为静态。

f是一个实例方法,大概在Program类中,对吗?若您是从Main调用f,那个么就并没有程序实例,因为Main是一个静态方法。将f更改为静态:

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

f是一个实例方法,大概在Program类中,对吧?若您是从Main调用f,那个么就并没有程序实例,因为Main是一个静态方法。将f更改为静态:

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