这行语法重的代码行意味着什么

本文关键字:意味着 什么 代码 语法 | 更新日期: 2023-09-27 18:25:14

我在一个项目中发现中有一行语法很重的代码

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

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

这行语法重的代码行意味着什么

这是三元运算符

就像在说:

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

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

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

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

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