.NET Framework 结构定义

示例

结构从System.ValueType继承,是值类型,并存在于堆栈中。当值类型作为参数传递时,它们按值传递。

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。

请记住,值类型存在于堆栈中,并按值传递。