|
|
2
3
不,它不会以任何方式影响封装。这通常是不必要的。通常,创建一个包含较少参数的重载是一个更灵活、更简洁的解决方案,因此C#的设计人员根本没有理由将默认参数的复杂性添加到语言中。 添加“另一种方法做同样的事情”总是一种折衷。在某些情况下,这可能很方便。但是,你越是将语法合法化,语言就变得越复杂,你就越可能陷入困境,阻碍将来的扩展。(也许有一天他们会想出另一种语言的扩展,它使用了类似的语法。那就不可能添加了,因为它会与他们之前添加的功能冲突) |
|
|
3
2
如前所述,默认参数不是一个优先功能,但很可能会添加到C#4.0中。然而,我相信有很好的理由不把它放在前面(据我所知,在4.0中,主要是为了支持它) duck typing 我认为过多的参数列表(当然超过4-5个不同的参数)是一个问题 code smell . 默认参数本身并不是邪恶的,但有可能助长糟糕的设计,延迟重构成更多的对象。 |
|
|
4
1
对于您的第一个问题-不,它与提供多个重载构造函数完全相同。至于第二个,我不能说。 |
|
|
5
1
|
|
|
6
1
下面是为什么C中没有提供它的答案# http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85556.aspx |
|
|
7
1
另一个缺点是默认值取决于您如何投射对象。您可以在此处阅读: http://saftsack.fs.uni-bayreuth.de/~dun3/archives/optional-parameters-conclusion-treat-like-unsafe/216.html . |
|
Leth · 设置具有只读属性的输入字段的默认值 9 年前 |
|
|
Bad Dub · 默认值设置为0的输入在渲染时没有0[关闭] 9 年前 |
|
|
Nemus · 无法将当前时间戳设置为默认值 9 年前 |
|
|
Mokey · C#选择目录,默认目录 9 年前 |
|
|
rasmus393 · python返回默认语句 11 年前 |
|
|
C A · 如何更改web应用程序的默认目录访问? 11 年前 |
|
|
user3437460 · 在这种情况下,我需要“默认”语句吗? 12 年前 |
|
|
user2913576 · Python-空白范围默认为预设范围 12 年前 |