gpt4 book ai didi

c# - 为什么 C# 不支持 Copy Constructor 的概念?

转载 作者:可可西里 更新时间:2023-11-01 07:50:34 26 4
gpt4 key购买 nike

我在一次采访中被问到这个问题,但我无法确切地找出为什么没有这个概念。

请告诉我。

最佳答案

它没有内置到语言中,因为没有合理的默认实现

复制构造函数suffer from many of the same ambiguities as cloning .例如,要进行浅拷贝还是深拷贝取决于您的具体情况。

假设您有一个带有 Customer 属性的 Order 类。它的复制构造函数应该创建一个客户还是指向原始实例?可能是原始实例 - 但是 Order.Payment 呢?

更糟糕的是,即使您确实想要执行深拷贝,您甚至可能无法创建所有从属对象,因为它们的构造函数(或类似的工厂方法)可能无法访问.

如果这还不够,this article on Java Design Issues突出显示其他一些问题(如类型截断)。

关于c# - 为什么 C# 不支持 Copy Constructor 的概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com