相关疑难解决方法(0)

表达与陈述

我问的是关于c#,但我认为它在大多数其他语言中都是一样的.

有没有人对表达式语句有一个很好的定义,有什么区别?

c# language-features expression

425
推荐指数
10
解决办法
6万
查看次数

C#条件运算符不是语句?

我有一个简单的小代码片段令我感到沮丧:

HashSet<long> groupUIDs = new HashSet<long>();
groupUIDs.Add(uid)? unique++ : dupes++;
Run Code Online (Sandbox Code Playgroud)

在编译时,它会生成错误:

只有赋值,调用,递增,递减和新对象表达式才能用作语句

HashSet.Add 记录为返回bool,因此三元(?)运算符应该工作,这看起来像是一种完全合法的方式来跟踪我添加到哈希集的唯一和重复项的数量.

当我将其重新格式化为if-then-else时,它可以正常工作.

任何人都可以解释错误,如果有一种方法可以做一个简单的三元运算符?

c# conditional-operator

22
推荐指数
4
解决办法
2999
查看次数

C#if then else速记将无法编译

以下编译好了:

if (_logon.LogonToConnector())
{
    MessageBox.Show("Logon Success");
}
else
{
    MessageBox.Show("Logon Failed");
}
Run Code Online (Sandbox Code Playgroud)

但是对于更简洁的等价物:

_logon.LogonToConnector() ? MessageBox.Show("Logon Success") : MessageBox.Show("Logon Failure");
Run Code Online (Sandbox Code Playgroud)

编译器给出错误:

只有赋值,调用,递增,递减和新对象表达式才能用作语句UniformTestClient

我哪里做错了?

c# c#-6.0

0
推荐指数
1
解决办法
90
查看次数