|
|
1
9
如果参数是可选的(即重载是完整过程签名接受的参数的子集),那么默认或可选参数将更有意义。 如果重载允许参数使用不同的类型,或者是一个语义上不同的参数,例程会对其进行不同的解释,那么重载将更有意义。 |
|
|
2
4
代码会被其他语言使用吗?如果是这样的话,这会使天平向超载方向倾斜,同时仍然牢记哈米什的答案。特别是,C#还不支持可选参数。.. 诚然,这实际上并不能阻止有人使用C#的代码,这可能会让他们感到痛苦。
如果有很多参数,并且它们在逻辑上表示某些东西,你可能想考虑将它们封装在一起,就像
如果这是为了构建,您也可以将构建器模式视为其变体。例如,在Protocol Buffers中,我可以执行以下操作:
它最终非常可读,同时仍然一次创建一个人(在一个表达式中,不必改变人本身——事实上,消息类型是不可变的;只有构建器不是)。 |
|
|
3
0
供参考 如果要向从其他程序集调用的函数或方法添加参数,则: 您可以通过使用额外的参数创建额外的函数来重载。 或者你可以添加一个可选参数,但是:你必须重新编译所有调用此函数的程序集,即使它们不需要使用新的可选参数!这通常不是人们所期望的(特别是那些习惯了VB6工作原理的人)。基本上,你不能在函数中插入一个新的可选参数,并期望它完全向后兼容。此外,据我所知,如果更改默认值,则需要重建所有调用程序集才能使更改生效。 |
|
|
Mear1628 · vb.net从随机选择的端口号接收UDP 1 年前 |
|
|
user1946932 · .Net正则表达式在所有字符前添加空格 1 年前 |
|
|
user1946932 · 正则表达式:删除连续两个以上的<br>? 2 年前 |
|
|
Josh · 通过反思访问孩子的财产 2 年前 |
|
|
Khu RJ · 更新网格中的单元格-DevExpress网格控件 2 年前 |
|
|
Mick · VB.NET Regex。替换不起作用(数组未更新) 2 年前 |