4
struct
是C#中的一個值類型。當我們將struct
分配給另一個結構變量時,它將複製這些值。如果struct
包含另一個struct
,那該怎麼辦?它會自動複製內部struct
的值?拷貝含有另一個結構的struct
struct
是C#中的一個值類型。當我們將struct
分配給另一個結構變量時,它將複製這些值。如果struct
包含另一個struct
,那該怎麼辦?它會自動複製內部struct
的值?拷貝含有另一個結構的struct
是的。這裏有一個例子展示它在行動:
struct Foo
{
public int X;
public Bar B;
}
struct Bar
{
public int Y;
}
public class Program
{
static void Main(string[] args)
{
Foo foo;
foo.X = 1;
foo.B.Y = 2;
// Show that both values are copied.
Foo foo2 = foo;
Console.WriteLine(foo2.X); // Prints 1
Console.WriteLine(foo2.B.Y); // Prints 2
// Show that modifying the copy doesn't change the original.
foo2.B.Y = 3;
Console.WriteLine(foo.B.Y); // Prints 2
Console.WriteLine(foo2.B.Y); // Prints 3
}
}
怎麼樣,如果該結構包含另一個結構?
是。一般來說,製作如此複雜的結構可能是一個壞主意 - 它們通常應該只有一些簡單的值。如果你在結構裏面的結構裏面有結構,你可能想要考慮一個引用類型是否更合適。
是的。那是對的。