Shi*_*iva 1 .net c# ternary-operator conditional-operator
我真的很喜欢C#中的条件运算符.它使我的生活更容易编写如下的逻辑:
public string FormattedFileName
{
get
{
return string.Format("{0}_{1}_{2}_{3}.xls",
DateTime.Now.Month.ToString().Length == 1
? "0" + DateTime.Now.Month.ToString()
: DateTime.Now.Month.ToString(),
DateTime.Now.Day.ToString().Length == 1
? "0" + DateTime.Now.Day.ToString()
: DateTime.Now.Day.ToString(),
DateTime.Now.Year.ToString(),
"DownLoaded_From_Clients");
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这意味着我失去了代码的可读性.无论如何,我只是好奇其他开发人员对这种编写代码的方法的看法.谢谢.我同样赞赏消极和积极的评论.
Dan*_*nas 63
喜欢它 ?使用它:不要
// if (Like it) then (Use it) else (Don't)
Run Code Online (Sandbox Code Playgroud)
kvb*_*kvb 20
当您需要它时,三元运算符是非常宝贵的.但是,我认为通常有更好的方式来表达自己.在您给出的示例中,为什么不使用完全符合您要求的格式字符串:"{0:00}_{1:00}_{2}_{3}.xls",允许您显着简化代码?
Sam*_*ron 10
你的例子是滥用条件运算符,
它可以用这种方式表达得更清楚:
public string FormattedFileName
{
get {
return DateTime.Now.ToString("MM_dd_yyyy") +
"_DownLoaded_From_Clients.xls";
}
}
Run Code Online (Sandbox Code Playgroud)
我发现条件运算符非常有用并经常使用它.如果使用得当,它可以通过使代码更简洁来帮助简化代码.
一般来说,我会避免在同一个语句中链接多个条件,它很快就会变得非常混乱,从而导致代码无法维护.
我也找到了?非常有用,并且经常发现可以很容易被替换的三元组.
例如:
a == null? "empty" : a
可以替换为:
a ?? "empty"
| 归档时间: |
|
| 查看次数: |
1636 次 |
| 最近记录: |