【发布时间】:2019-10-15 12:29:03
【问题描述】:
我有一个方法有一个可选的默认值null。我观察到,使用该方法的人将null 作为可选参数的值传递
主要方法
public void MainMethod(int id, MyClass model = null)
{
// Logic goes here
}
我可以看到两种类型的调用,
public void First()
{
MainMethod(1, null);
}
public void Second()
{
MainMethod(1);
}
他们两个会有相同的表现吗?还是一种比另一种更好?
【问题讨论】:
-
两者都是一样的。第一个优点是即使更改了默认值也能始终如一地工作。
-
@mjwills:请注意,如果
MyClass是一个类,则除非 C# 更改,否则默认值不会更改——除null以外的默认值都不能应用,因为 @ 没有其他编译时常量987654327@ 是可能的。 (当然,一般观点是成立的。) -
同意@JeroenMostert。
标签: c# null optional-parameters