原代码: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;好像不可以!为什么请细说,刚接触这种写法,这种写法也不知道怎么搜索了.

解决方案 »

  1.   


    return (参数1 == 参数)?(参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2: -1;
    //总之你是要返回一个值,那就直接return就可以了
      

  2.   

    return (参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1;
    //要给中间值加个括号
      

  3.   

    return (参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1;
    //要给中间值加个括号
      

  4.   

    是不是热Resharper 建议的... 有时候这个插件 还建议把foreach改成linq 简单的到也算了,复杂的改成linq 可读性太差了 
      

  5.   

    只return一个值,怎么有两个return
    return(参数1 == 参数)?((参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2): -1;
    对,和4L一样
      

  6.   

    return (参数1 == 参数)?
                (参数 > 15) ? (数 - 1) * 2 + 1 
                    : (数 - 1) * 2
                : -1;这样,但不怎么好读
      

  7.   

    这个主要是三目运算符的应用,你写的那种方法
       return (参数1 == 参数)?
                    return (参数 > 15) ? (数 - 1) * 2 + 1 : (数 - 1) * 2: -1;
    不符合语法格式,应该是不行的。可以分点去划分开就知道行不行的,个人见解,希望能够帮到你~
      

  8.   

    谢谢zhouqinghe24 答复我一半问题,昨天不知道搜索什么,好像有说明这种语法解释,好像说:当3部分看
    (参数 > 15) ?是条件逻辑表达式 
    如果逻辑为真则执行(数 - 1) * 2 + 1
    如果逻辑为假则执行(数 - 1) * 2
    解释的简单,想更深入了解这种语法详细内容,比如回复中说的中间要加括号,为什么?假如中间不加括号会怎样?会逻辑错误?
    假如说有这样语句:
    if (值 >= 0 && 值 <= 23) return 名[值];
    else
    {
        期(out 参数, out 参数1, out 参数2, 89);
        return 中(参数1, true) + 子(参数2);
    }
    也能写成?式不,
    而且昨天找的今天想再看看,可怎么也找不到原来怎么搜到的了,凭记忆大概就上面这样简单解释,但我想了解更多.
      

  9.   

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

  10.   


    不是因为效率问题,是因为我看到这种语法喜欢的问题,读它感觉很舒服,把?当作IF把:当作ELSE就可以了,或许有人初看会别扭,不过看惯了也神马浮云的,不过我初看就欢喜,再说了个人喜好掌握越多就游刃有余是很惬意的事。
      

  11.   

    这句话使我知道怎么去找资料学习解决所疑故得分。
    今天,有想起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", "")); 
    };