基础知识之vb.net的拷贝构造函数

在VB.net下可以定义拷贝构造函数了,定义方法为:

class sam

sub new (byval obj as sam)

'在此处编写拷贝的操作

end sub

end class

虽然也称之为拷贝构造函数,但与C++下的概念还是有差别的。

在C++下有一默认的浅拷贝构造函数,可以实现按位赋值,而在VB.Net下需要手工实现。

不过关于浅拷贝与深拷贝的概念还是一样的。

因为不提供默认拷贝构造函数,所以vb.net下的拷贝构造函数没有太大意义。微软也建议采用实现ICloneable接口来实现对象的拷贝,而不是什么拷贝构造函数。

不过实现因为ICloneable.Clone方法返回的是Object类型,所以需要有一个强制类型转换的过程(采用DirectCast或者Ctype)。

这也许算是VB.NET中的一个小小的瑕疵吧!