【问题标题】:What does this line syntax heavy line of code mean?这行语法重的代码行是什么意思?
【发布时间】:2014-11-27 00:59:36
【问题描述】:

我正在做一个项目,我在其中发现了一个语法繁重的代码行

logonuser = logonuser.IndexOf(domain) >= 0 ? logonuser : domain + "\\" + logonuser;

登录用户和域都是字符串。 我需要解释它是什么以及它是如何工作的?

【问题讨论】:

标签: c# string syntax ternary-operator


【解决方案1】:

这是ternary 运算符

这就像说:

if(logonuser.IndexOf(domain) >= 0)
{
     logonuser = logonuser;
}
else
{
     logonuser = domain + "\\" + logonuser;
}

【讨论】:

  • 虽然如果你用verbose格式写,你只会写else case :)
【解决方案2】:

正如其他人已经说过的,这就是三元运算符。除了使用这个操作符之外,代码的解释是:

  • 如果 longuser 是包含域的“绝对”(*) url,则使用它而不更改它。

  • else(longuser是相对url)使用域构建绝对url

(*) 没有协议就不是绝对的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多