if else 简写,C#

weixin_43153506 2019-02-26 01:33:41
if else 简写,C#
如一:
int xingbie = 0;
string xb = xingbie == 0 ? "男" : "女";
如二:
string xb = null;
string xbNew = string.IsNullOrEmpty(xb) ? “” : xb;
如三:
StringBuilder sbRet = new StringBuilder();
sbRet.Append("\"explanation\":\"" + (string.IsNullOrEmpty(drBody["explanation"].ToString().Trim()) ? "" : drBody["explanation"].ToString().Trim()) + "\",");

...全文
1572 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wilson1966 2019-11-27
  • 打赏
  • 举报
回复
引用 14 楼 hez2010 的回复:
利用 C# 8 还可以这么写:
string xb = xingbie switch {
    0 => "男",
    1 => "女",
    _ => "未知"
}
真的不错 长知识了
圣殿骑士18 2019-11-27
  • 打赏
  • 举报
回复
c#语法糖越来越多,其实有时候感觉没有必要。你语法上再灵活,赶得上JavaScript么?还是做好自己的特色。
MYsce 2019-11-26
  • 打赏
  • 举报
回复
三木运算符已经是简化了,用if else 可以更清晰
threenewbee 2019-11-26
  • 打赏
  • 举报
回复
string xb = null; string xbNew = string.IsNullOrEmpty(xb) ? “” : xb; 还可以写 string xb = null; xbNew = xb ?? ""; 你没学过吧
hez2010 2019-11-26
  • 打赏
  • 举报
回复
利用 C# 8 还可以这么写:
string xb = xingbie switch {
    0 => "男",
    1 => "女",
    _ => "未知"
}
data-v 2019-11-26
  • 打赏
  • 举报
回复
引用 8 楼 hztltgg 的回复:
设计模式角度看,if语句就是坏味道,反正都要消除

如果是单行条件语句,本身没有逻辑,用?:三目运算符消除
如果是有业务逻辑的分支语句块,那就说明这是两个不同的但又相似的东西,考虑用多态来让系统自动选择执行那块

请教,多态如何完全替换if。
data-v 2019-11-26
  • 打赏
  • 举报
回复
好端端的微软文档、教程不用,搞什么歪门邪道和“慢慢发现”。微软都还给你翻译好了!
https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/intro-to-csharp/
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/index
另外,就算C#有什么神奇的,也轮不上到处都有的三目运算符啊……
hztltgg 2019-11-26
  • 打赏
  • 举报
回复
设计模式角度看,if语句就是坏味道,反正都要消除 如果是单行条件语句,本身没有逻辑,用?:三目运算符消除 如果是有业务逻辑的分支语句块,那就说明这是两个不同的但又相似的东西,考虑用多态来让系统自动选择执行那块
Bridge_go 2019-11-26
  • 打赏
  • 举报
回复
引用 6 楼 了不去的牵挂,解不开的枷锁 的回复:
说句实在话 目前就想找个代替if else的判断
写程序就像说话一样,你想想如果是你,有这么多如果要怎么说
DH9349826 2019-11-26
  • 打赏
  • 举报
回复
说句实在话 目前就想找个代替if else的判断
lindexi_gd 2019-02-26
  • 打赏
  • 举报
回复
引用 4 楼 Summer_djz 的回复:
三目运算符确实可以简化代码,C#有很多神奇的东西,慢慢去发现吧
C# 很少人知道的科技
牧歌ing 2019-02-26
  • 打赏
  • 举报
回复
三目运算符确实可以简化代码,C#有很多神奇的东西,慢慢去发现吧
liusa1997 2019-02-26
  • 打赏
  • 举报
回复
引用 楼主 weixin_43153506 的回复:
if else 简写,C#
如一:
int xingbie = 0;
string xb = xingbie == 0 ? "男" : "女";
如二:
string xb = null;
string xbNew = string.IsNullOrEmpty(xb) ? “” : xb;
如三:
StringBuilder sbRet = new StringBuilder();
sbRet.Append("\"explanation\":\"" + (string.IsNullOrEmpty(drBody["explanation"].ToString().Trim()) ? "" : drBody["explanation"].ToString().Trim()) + "\",");

你没有提出任何问题,只是想表达这种判断语句的书写还是?
正怒月神 2019-02-26
  • 打赏
  • 举报
回复
书写上是方便了。的确也很实用。 不过要保证类型相同。if else则不会有这个问题。
极客诗人 2019-02-26
  • 打赏
  • 举报
回复
这不是简写。。。这叫做。。三目运算符。。。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧