gpt4 book ai didi

c# - 可选参数是否应该列在构造函数签名中?

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:59 25 4
gpt4 key购买 nike

考虑到最佳实践,将可选参数添加到构造函数签名的可取方法是什么?您是否应该只列出核心参数并依赖于非可选属性的初始化程序?在我看来这是最明智的做法!

最佳答案

特别是在能够使用对象初始值设定项分配属性值的情况下,构造函数的多重重载远不如以前有用。它们在过去主要用于设置可变属性以实现代码紧凑。

现在可以写了

MyClass my = new MyClass() { PropA = 1, PropB = 2 };

几乎和

一样紧凑
MyClass my = new MyClass(1, 2);

同时更具表现力。

但是,有时对象的性质决定了重载会为对象使用者提供有意义的契约。例如,为接受长度和宽度的 Rectangle 类提供重载并非不合理(我不会在代码审查时拒绝它)。就我个人而言,我仍然不会提供重载,因为对象初始化器语法更具表现力,避免了诸如“是 Rectangle(int length, int width) 还是 Rectangle(int width, int length)?”之类的问题。在阅读代码时(我知道,智能感知在编写代码时会有所帮助)。

关于c# - 可选参数是否应该列在构造函数签名中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768601/

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