C# 中结构体的复制
Posted Thomas会写字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中结构体的复制相关的知识,希望对你有一定的参考价值。
复制的几种情况
- 地址复制
- 浅表字段复制(复制字段及地址块的地址,并不复制地址块内容,内容仍旧引用从前部分)
- 深度完整复制,借用C#序列化功能。
速度方面,逐渐变慢
第一种:
struct a = struct b
第二种:
struct Person
Person Copy()
Person other = (Person)this.MemberwiseClone();
第三种
[Serializable]
struct Person
Person Clone()
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(memoryStream, this);
memoryStream.Position = 0;
return (Person)formatter.Deserialize(memoryStream);
以上是关于C# 中结构体的复制的主要内容,如果未能解决你的问题,请参考以下文章
《C#零基础入门之百识百例》(六十一)结构体的定义 -- 时间设计