C# 可以将一个 struct 变量初始化或赋值成另一个 struct 变量,但条件是操作符 = 右侧的 struct 变量已经完全初始化(也就是它的所有字段都已经初始化)。
例如,下面的代码不能通过编译,因为 now 没有被初始化:
Time now;
Time copy = now; // 编译错误:now 未初始化
下面的代码可以成功编译:
Time now = new Time(12, 30);
Time copy = now;
赋值后的结果为:
复制一个结构变量时, = 操作符左侧的结构变量的每个字段都直接从右侧结构变量相应字段中复制。