怎么实现不可变类型并实现赋值时创建新对象
如何实现不可变类型并实现赋值时创建新对象
我记忆中C#的Delegate是不可变类型(immutable object),并且实现了对其赋值等于新建一个对象,而不是简单的赋值引用。
比如:
Delegate abc = xxxx;
Delegate def = abc;
那么abc和def并不是指向同一个内存实例。
我想知道如何实现这种表达。(不是简单实现不可变类型,而是这种通过赋值操作符就实现创建新实例的方法)。
在C++中是比较简单的,有赋值(复制)构造函数,但C#怎么实现呢?
请些简单的例子说明,谢谢!
------解决思路----------------------
你的印象是错误的。
bool eq = object.ReferenceEquals(abc, def); // true
我记忆中C#的Delegate是不可变类型(immutable object),并且实现了对其赋值等于新建一个对象,而不是简单的赋值引用。
比如:
Delegate abc = xxxx;
Delegate def = abc;
那么abc和def并不是指向同一个内存实例。
我想知道如何实现这种表达。(不是简单实现不可变类型,而是这种通过赋值操作符就实现创建新实例的方法)。
在C++中是比较简单的,有赋值(复制)构造函数,但C#怎么实现呢?
请些简单的例子说明,谢谢!
------解决思路----------------------
你的印象是错误的。
bool eq = object.ReferenceEquals(abc, def); // true