c# - C# 中的默认参数值

标签 c# c#-4.0

我想使用 .net 框架中的 DefaultParameterValueAttribute 类将 DateTime 作为 DefaultParameterValue 传递给我的方法。有办法吗?

我可以在下面的代码中传入字符串、 bool 值和其他类型。我尝试传入 Nullable DateTime 但没有成功。

 object SomeMethod([Optional, DefaultParameterValue("")]string param1,
                  [Optional, DefaultParameterValuefalse)] bool isValid,
                  [Optional, DefaultParameterValue(null)] Nullable<DateTime> valuationDate
      );

最佳答案

在 C# 4.0 之前,您最好的选择是调用“真实”版本的重载:

public void Foo() { Foo(123,"abc");}
public void Foo(int a) { Foo(a, "abc");}
public void Foo(string b) {Foo(123, b);}
public void Foo(int a, string b) { ... your code ... }

在 C# 4.0 中,这将只是:

public void Foo(int a = 123, string b = "abc") { ... }

调用,例如:

Foo();
Foo(456);
Foo(b: "def");

关于c# - C# 中的默认参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557863/

相关文章:

C# WCF - 自定义服务器端监控实现

c# - 在列表值之间分配整数值

c# - 提交带有子集合的 View 模型的表单

asp.net - 使用字节数组在c#中绑定(bind)图像

HttpListener 的 C# 问题

c# - WinForms/C# : Adding items to Combox and controlling the Item value (numeric)

c# - 帮助 Linqifying collection to Dictionary

与集合有关的 C# 继承问题

c# - 无需显式转换即可处理数字的通用方法

windows - 如何确定应用程序是否真的没有响应,如任务管理器中所示