在 C# 中使用三元运算符

Kee*_*arn -1 c# conditional-operator

编写这行代码时出现错误。我想检查该值是否等于并大于0然后获取该值,否则获取空白或空值。

double h = model.WorkHours.Value>=0 ? model.WorkHours.Value:"";
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 9

当条件为 时会发生什么false?这个:

double h = "";
Run Code Online (Sandbox Code Playgroud)

一个string值不能设置为double。a 的默认值double0改为a :

double h = model.WorkHours.Value >= 0 ? model.WorkHours.Value : 0;
Run Code Online (Sandbox Code Playgroud)

或者,尽可能具体:

double h = model.WorkHours.Value >= 0 ? model.WorkHours.Value : 0.0d;
Run Code Online (Sandbox Code Playgroud)

default如果您愿意,您也可以依赖:

double h = model.WorkHours.Value >= 0 ? model.WorkHours.Value : default(double);
Run Code Online (Sandbox Code Playgroud)

如果您希望该值真正为空,那么您可以考虑使用double?(简写Nullable<double>):

double? h = model.WorkHours.Value >= 0 ? model.WorkHours.Value : new Nullable<double>();
Run Code Online (Sandbox Code Playgroud)