更具体地说,通常,当您将类的实例作为函数的参数传递时,它将被存储为局部变量,然后在以后保留作用域,或作为其他变量返回。有没有一种方法可以将类的 instance 传递给函数,然后以修改作为参数传递的实例会修改原始版本本身的方式存储它?
即
static void Main()
{
int j = 0;
Example(j);
Console.WriteLine(j);
}
static void Example(linked int param)
{
param += 100;
}
当然输出为100。
顺便说一下,这是一个示例用法:
您有位置类,必须将其绘制在地图上。它的构造函数要求坐标和要在其上绘制的地图。从那时起,从该特定位置调用的所有功能仅会影响该Map。您可以在同一张地图上有多个位置,也可以有多个地图。
答案 0 :(得分:2)
在这种情况下,您没有传递类(reference types),而是传递value types,如果要修改值,请使用ref keyword
static void Example(ref int value)
{
value += 100;
}
用法
Example(ref j);
答案 1 :(得分:0)
当然,这应该很容易。默认情况下,引用类型(例如类)是对对象的引用,因此,如果您有一个参数类型为引用类型的参数,则在调用代码中会发现该对象在函数中的状态发生了变化
相反,如果您想突变值类型(例如您的int
),则只需在类型前加上ref
:
static void Example(ref int param)
{
param += 100;
}
现在int
将被引用传递 ,该方法将具有对同一个int
变量的 reference ,并且您对int
的值也会被调用代码观察到,