相关疑难解决方法(0)

C#4.0:我可以使用TimeSpan作为带有默认值的可选参数吗?

这两个都会产生错误,说它们必须是编译时常量:

void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0))
void Foo(TimeSpan span = new TimeSpan(2000))
Run Code Online (Sandbox Code Playgroud)

首先,有人可以解释为什么在编译时无法确定这些值吗?有没有办法为可选的TimeSpan对象指定默认值?

c# timespan default-value optional-parameters c#-4.0

118
推荐指数
6
解决办法
4万
查看次数

C#4.0可选参数 - 如何指定"Guid"类型的可选参数?

这是我的方法:

public void SomeQuery(string email = "", Guid userId = Guid.Empty)
{
   // do some query
}
Run Code Online (Sandbox Code Playgroud)

userId给我一个错误,因为它必须是一个编译时常量,我明白.但即使我宣布一个const:

private const emptyGuid = Guid.Empty;
Run Code Online (Sandbox Code Playgroud)

然后将方法签名更改为:

public void SomeQuery(string email = "", Guid userId = emptyGuid)
{
   // do some query
}
Run Code Online (Sandbox Code Playgroud)

仍然没有爱.

我错过了什么?

.net c# guid optional-parameters c#-4.0

12
推荐指数
1
解决办法
7192
查看次数

如何在C#中将参数默认为DateTime.MaxValue?

我想说:

public void Problem(DateTime optional = DateTime.MaxValue)
{
}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨DateTime.MaxValue不是编译时常量.

DateTime.MinValue很简单,只需使用默认值(DateTime)

另请参阅" 如何在C#中将参数默认为Guid.Empty? "

我不想使用方法重载,因为我试图驯服的方法有101个参数!

c# optional-parameters c#-4.0

11
推荐指数
2
解决办法
5372
查看次数

标签 统计

c# ×3

c#-4.0 ×3

optional-parameters ×3

.net ×1

default-value ×1

guid ×1

timespan ×1