gpt4 book ai didi

c# - 空构造函数在 C# 中提供了哪些好处?

转载 作者:行者123 更新时间:2023-11-30 13:53:59 33 4
gpt4 key购买 nike

我来到了C#中的现有项目。我可以看到有几个类具有空的无参数构造函数。要么是公共(public)的,要么是内部的。这些类本身也是公共(public)的或内部的。我在那里既看不到其他构造函数,也看不到继承。我想知道这有什么好处。

我预计如果绝对没有构造函数,那么 C# 编译器总是会创建一个无参数的空构造函数。所以我的问题是:当前代码(在上述条件下)是否与没有构造函数时有任何不同?我认为唯一的特例是公共(public)类中的内部构造函数。我还错过了什么吗?

最佳答案

好吧,“或内部的”是一个重大的变化;默认构造函数将是公共(public)的。

但是,通常我看到这种情况的原因是,如果有人稍后添加了一个特定的构造函数,它并不代表一个破坏性的变化。构造函数的不寻常之处在于添加自定义构造函数可能会突然破坏事物,因为它可能删除默认构造函数;这会产生后果 - 包括直到运行时才显示的内容(例如反序列化),或者直到库的下游使用者提示您破坏了 API。

同样,如果该类型曾在反射中使用过(可能作为插件):Activator.CreateInstance 用法不会显示错误,因为在运行时之前已移除无参数构造函数。

当然,您是否实际上需要这样做在很大程度上是一个见仁见智的问题。

关于c# - 空构造函数在 C# 中提供了哪些好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876463/

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