请教

智者知已应修善业 2013-05-09 07:48:48
原代码:

if (参数1 == 参数)
{
if (参数 > 15) return (数 - 1) * 2 + 1;
else return (数 - 1) * 2;
}
else return -1;

修改代码如下正常:

if (参数1 == 参数)
return (参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2;
else return -1;

如果要再改成嵌套?式写法,不知可?怎么写?

return (参数1 == 参数)?
return (参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2: -1;

好像不可以!为什么请细说,刚接触这种写法,这种写法也不知道怎么搜索了.
...全文
180 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 9 楼 flyheightest 的回复:
这个主要是三目运算符的应用
这句话使我知道怎么去找资料学习解决所疑故得分。 今天,有想起10#问题不甘心,找资料并测试,以下记录分享:

Func<string, bool> 逻辑 = delegate(string s)
{
    if (年信息.Contains("11")) return false;
    return true;/*在这里可以写多语句处理,写在调用之前*/ 
};
return (年信息.Contains("00")) ? true : 逻辑(年信息);
上门利用有参有返回(仅1个参数和返回值)下面无参无返回封装一并记录
Action 显示 = delegate()
{
   升起提示窗体(显示事件.Text.Replace("\r\n", "")); 
};
  • 打赏
  • 举报
回复
可以说9楼是我解决另一半问题,结帖.
  • 打赏
  • 举报
回复
引用 1 楼 keith_cheung 的回复:
如果不是考虑效率之类,不用太纠葛这个吧? 现在机器快了,没必要太在意了。 能快点把东西编出来才是好样的。
不是因为效率问题,是因为我看到这种语法喜欢的问题,读它感觉很舒服,把?当作IF把:当作ELSE就可以了,或许有人初看会别扭,不过看惯了也神马浮云的,不过我初看就欢喜,再说了个人喜好掌握越多就游刃有余是很惬意的事。
threenewbee 2013-05-09
  • 打赏
  • 举报
回复
return 参数1 == 参数 ? -1 : ((数 - 1) * 2 + 参数 > 15 ? 1 : 0);
  • 打赏
  • 举报
回复
呵呵,没刷新,原来楼下还有人啊,谢谢,对的,如9楼说的语法格式不符,就是想了解详细的语法知识.可否提供哪里看有关资料?
  • 打赏
  • 举报
回复
谢谢zhouqinghe24 答复我一半问题,昨天不知道搜索什么,好像有说明这种语法解释,好像说:当3部分看 (参数 > 15) ?是条件逻辑表达式 如果逻辑为真则执行(数 - 1) * 2 + 1 如果逻辑为假则执行(数 - 1) * 2 解释的简单,想更深入了解这种语法详细内容,比如回复中说的中间要加括号,为什么?假如中间不加括号会怎样?会逻辑错误? 假如说有这样语句: if (值 >= 0 && 值 <= 23) return 名[值]; else { 期(out 参数, out 参数1, out 参数2, 89); return 中(参数1, true) + 子(参数2); } 也能写成?式不, 而且昨天找的今天想再看看,可怎么也找不到原来怎么搜到的了,凭记忆大概就上面这样简单解释,但我想了解更多.
Elaine00 2013-05-09
  • 打赏
  • 举报
回复
这个主要是三目运算符的应用,你写的那种方法 return (参数1 == 参数)? return (参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2: -1; 不符合语法格式,应该是不行的。可以分点去划分开就知道行不行的,个人见解,希望能够帮到你~
vo__ov 2013-05-09
  • 打赏
  • 举报
回复
return (参数1 == 参数)? (参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2 : -1; 这样,但不怎么好读
LemonSmile_ 2013-05-09
  • 打赏
  • 举报
回复
只return一个值,怎么有两个return return(参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1; 对,和4L一样
黄瓜黄瓜 2013-05-09
  • 打赏
  • 举报
回复
是不是热Resharper 建议的... 有时候这个插件 还建议把foreach改成linq 简单的到也算了,复杂的改成linq 可读性太差了
瑞卡哥哥 2013-05-09
  • 打赏
  • 举报
回复
return (参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1; //要给中间值加个括号
瑞卡哥哥 2013-05-09
  • 打赏
  • 举报
回复
return (参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1;
//要给中间值加个括号
瑞卡哥哥 2013-05-09
  • 打赏
  • 举报
回复

return (参数1 == 参数)?(参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2: -1;
//总之你是要返回一个值,那就直接return就可以了
wxl1010 2013-05-09
  • 打赏
  • 举报
回复
多个return吧
keith_cheung 2013-05-09
  • 打赏
  • 举报
回复
如果不是考虑效率之类,不用太纠葛这个吧? 现在机器快了,没必要太在意了。 能快点把东西编出来才是好样的。

110,538

社区成员

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

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

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