C# 有关';的信息';C中的运算符#

C# 有关';的信息';C中的运算符#,c#,C#,有人能告诉我字符串代理=args.Length>0行中的运算符是什么吗?args[0]:“本地主机:5672”平均值。我在通读的时候偶然发现的 似乎只有关于操作员的信息。、?和?[这是操作员 上述声明与 if(args.Length > 0) broker = args[0]; else broker = "localhost:5672"; 这不是一个“?”运算符,它是“?:”-所谓的三元运算符。这里有一个来自 “?”:运算符可用作if…else语句的快捷方式。它通

有人能告诉我
字符串代理=args.Length>0行中的
运算符是什么吗?args[0]:“本地主机:5672”平均值。我在通读的时候偶然发现的

似乎只有关于操作员的信息。
?[

这是操作员

上述声明与

if(args.Length > 0)
     broker = args[0];
else
     broker = "localhost:5672"; 
这不是一个“?”运算符,它是“?:”-所谓的三元运算符。这里有一个来自

“?”:运算符可用作if…else语句的快捷方式。它通常用作if…else语句不方便使用的较大表达式的一部分


?运算符本身不过是if的一个快捷方式。让我们在这里举个例子:

String broker = args.Length > 0 ? args[0] : "localhost:5672"
表示如果。因此,所有的左边都是if部分。所有的右边都是then部分。而:将else部分与then部分分开

因此,要把所有这些放在一起,你还可以写:

String broker;
if (args.Length > 0)
{
    broker = args[0];
}
else
{
    broker = "localhost:5672";
}
是否使用它主要取决于您的品味和代码的可读性(如果您需要一个接一个地执行大量简短的ifs,那么?可能比完全编写的方法可读性更好)。

这就是它所等同的运算符

String broker;

if (args.Length > 0) 
{
   broker = args[0];
}
else
{
   broker = "localhost:5672"
}
但是写起来要短得多

`test ? expression1 : expression2` 

返回
expression1
如果
test
true
expression2
如果test为false

?:是if-else条件的快捷方式。我能说看到相对“简单”的对于大多数人来说,这个问题实际上是为了展示研究成果,明确你在问什么……我不确定这是否值得downvotesthanks的家伙们。我应该做更多的家庭作业。“?:”和“?:”不是一回事。好的ole MSDN gotacha。@Thomas:错的是我的错误,对不起。我不太喜欢第一个被指给我的问题ut作为一个复制品(对我来说,它似乎不是太重复,因为它要求的是利益而不是意义),但我确信,
?:
的意思以前有人问过,所以我搜索了一下。我发现,没有仔细观察,没有意识到问题实际上是在谈论运算符,而是问号作为类型后缀,和其他…虽然它们在逻辑上是等价的,但发出的IL略有不同,并且看起来ars三元运算符允许在IL级别进行一些编译器优化。当然,这些优化可以忽略不计,代码的可维护性应该放在首位。
`test ? expression1 : expression2`