Struct MyStruct
{
public int x;
public int y;
}传递值表示对方法复制参数的值,并且在方法中对参数所做的任何更改都不会反映在方法外部。例如,考虑以下代码,该代码调用名为方法的方法AddNumbers,并传入类型为的变量a和和b,它们是intValue类型。
int a = 5;
int b = 6;
AddNumbers(a,b);
public AddNumbers(int x, int y)
{
int z = x + y; // z变成11
x = x + 5; // 现在我们将x更改为10
z = x + y; // 现在z变成16
}尽管我们加入5到x里面的方法,价值a保持不变,因为它是一个值类型,这意味着x是一个副本的a的价值,但实际上没有a。
请记住,值类型存在于堆栈中,并按值传递。