问号(?
)和冒号(:
)是什么意思?
((OperationURL[1] == "GET") ? GetRequestSignature() : "")
它显示在以下语句中:
string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");
Answers:
这也称为“ inline if”,或在三元运算符之上。 https://zh.wikipedia.org/wiki/%3F:
它用于减少代码,尽管不建议在一行中使用很多代码,因为这可能会使代码维护变得非常困难。想像:
a = b?c:(d?e:(f?g:h));
你可以继续一会儿。
最终与写作基本相同:
if(b)
a = c;
else if(d)
a = e;
else if(f)
a = g;
else
a = h;
在您的情况下,“字符串requestUri = _apiURL +“?e =” + OperationURL [0] +(((OperationURL [1] ==“ GET”)?GetRequestSignature():“”);“
也可以写成:(省略else,因为它是一个空字符串)
string requestUri = _apiURL + "?e=" + OperationURL[0];
if((OperationURL[1] == "GET")
requestUri = requestUri + GetRequestSignature();
或像这样:
string requestUri;
if((OperationURL[1] == "GET")
requestUri = _apiURL + "?e=" + OperationURL[0] + GetRequestSignature();
else
requestUri = _apiURL + "?e=" + OperationURL[0];
根据您的偏好/老板告诉您使用的代码样式。