尝试从我的项目中删除`Ensure`

-5 c# asp.net

对于Ensure.GreaterThanZero(timeout, nameof(timeout));我尝试if (timeout <= 0) throw new ArgumentException(nameof(timeout));,但它显示的错误

运算符'<='不能应用于'TimeSpan'和'int'类型的操作数

410*_*one 6

timeout变量是一个TimeSpan(显然),并且因此<= 0不工作,因为TimeSpan具有没有operator <=(TimeSpan, int)限定.

您有三个选项,创建一个新的"零时间"TimeSpan:

if (timeout <= TimeSpan.FromTicks(0))
Run Code Online (Sandbox Code Playgroud)

或者TimeSpan.Ticks与0比较:

if (timeout.Ticks <= 0)
Run Code Online (Sandbox Code Playgroud)

或者,正如Panagiotis Kanavos所说,使用TimeSpan.Zero:

if (timeout <= TimeSpan.Zero)
Run Code Online (Sandbox Code Playgroud)


Pan*_*vos 6

错误消息很明显 - 您无法将TimeSpan值与整数进行比较.

请尝试使用TimeSpan.Zero:

if (timeout<=TimeSpan.Zero) throw new ArgumentException(nameof(timeout));
Run Code Online (Sandbox Code Playgroud)