实现并调用IsTrue运算符是否会创建类实例副本?
关于IsTrue运算符是否创建类实例副本的问题
在VB.NET中,核心要明确引用类型与值类型的传值差异:
- 你的
MyClass属于引用类型。当参数以ByVal传递引用类型时,传递的是对象引用的副本,而非整个类实例的副本。 IsTrue运算符要求为Shared且参数ByVal,但这里的ByVal只是复制原对象的引用地址,并不会克隆整个MyClass实例——包括类中的数组(数组同样是引用类型,传递的只是数组的引用副本,数组本身不会被复制)。
所以你可以放心编写如下代码:
If myClass1 Then ' 执行逻辑 End If
该过程中IsTrue不会创建MyClass实例的副本,只是接收原对象的引用副本,不会额外消耗内存复制实例或数组。
内容的提问来源于stack exchange,提问作者user11975130
相关产品推荐
相关产品推荐

