.net 按姓名还是按顺序排列?

.net 按姓名还是按顺序排列?,.net,vb.net,.net,Vb.net,也许只有我一个人在这里;但我总是觉得在.NET中,当调用函数时,必须按照与方法相同的顺序传入值 例如: Public Sub DoSomething(ByVal A as String, ByVal B as String) End Sub DoSomething("First Param", "Second Param") 我最近了解到,您可以通过名称指定参数: DoSomething(B:="Second Param", A:="First Param") 我的问题可能很愚蠢,但最佳实

也许只有我一个人在这里;但我总是觉得在.NET中,当调用函数时,必须按照与方法相同的顺序传入值

例如:

Public Sub DoSomething(ByVal A as String, ByVal B as String)
End Sub

DoSomething("First Param", "Second Param")
我最近了解到,您可以通过名称指定参数:

DoSomething(B:="Second Param", A:="First Param")
我的问题可能很愚蠢,但最佳实践是什么?我所见过的一切都只是以正确的顺序调用带有参数的方法——命名约定是VB遗留下来的旧约定吗?如果我在所有方法调用中都使用:=语法,人们会在我下一次的代码审查中大笑吗

你有使用:=真的有意义的例子吗?或者这只是一种偏好吗?

如果你还没有看过,看看(虽然它是关于C的,但原理是一样的)

基本上,命名参数的设计目的是使使用可选参数更容易。假设您有一个具有3个必需参数和12个可选参数的方法(如一些COM API)。您可能有兴趣覆盖其中一个可选参数,并将其余参数保留为默认值。使用命名参数,您可以做到这一点。另一种方法是传递
null
,或者传递不关心重写的参数


还有一个相关的问题:(同样是C#,但原理相同)。

有一些方法可以使用命名参数,比如MVC视图上的cache属性

而不是

(3600, null, null, null, null, null, null, null, "id")
你可以用

(time:=3600, target:="id")
下面是另一个例子:


基本上,您只在需要时使用它们,它们是可选参数…

非常好的示例,屏幕截图的道具。