C# 如何使用ref?
我正在学习使用ref,但不明白为什么会出错C# 如何使用ref?,c#,ref,C#,Ref,我正在学习使用ref,但不明白为什么会出错 class A { public void ret(ref int variable) { variable = 7; } static int Main() { int z = 5; ret(ref z); // Error: Need a reference on object Console.WriteLine(z); // it will
class A
{
public void ret(ref int variable)
{
variable = 7;
}
static int Main()
{
int z = 5;
ret(ref z); // Error: Need a reference on object
Console.WriteLine(z); // it will be 7 as I understand
return 0;
}
}
问题不在于
ref
参数。这是因为ret
是一个实例方法,如果不引用该类型的实例,就不能调用实例方法
尝试使ret
静态:
public static void ret(ref int variable)
{
variable = 7;
}
您的方法不是静态的。您需要将其设置为静态的,如下所示:
public static void ret(ref int variable)
{
variable = 7;
}
您正确地使用了
ref
。这个错误实际上是因为ret()
是一个实例方法,而Main()
是静态的。将ret()
也设为静态,此代码将按预期编译和工作。由于ret
是一种实例方法,因此如果不创建该类型的对象,则无法访问它
尝试将方法ret
设置为静态方法
类似公共静态void ret(ref int变量)