C# 三元运算符 + CHAR 中的转换不起作用

问题描述 投票:0回答:1

我目前正在学习C#,我是一个初学者,所以我不太熟悉这门语言的特殊性。

我的问题是:

我有这段代码,当用户选择 11 到 16 之间的基数时,它应该将 INTEGER 转换为 CHAR 并向 INTEGER 添加 55 以获得十六进制的 ASCII 代码。当我使用简单的“if”时和“else”它工作得很好,但由于某种原因,它不适用于三元运算符


nConverti += (pNewbase > 10 && n >= 10) ?( n += 55 : (char)(n)): n;

nConverti += Depiler(ref unePile);  

为了精确起见,我目前使用的是 Visual Studio 2022 版本 17.8.5,框架的版本是 4.8.09032。

我提前感谢任何帮助我解决此问题的人。

我已经尝试阅读所有关于 C# 中三元的文档,但没有找到任何解决方案,我什至问了我的大学老师,但他也无法帮助我。我还尝试更新我的框架和视觉工作室,但仍然没有改变(即使我真的不认为问题来自那里)。

c# conditional-operator ternary
1个回答
0
投票

三元运算符的工作原理如下:

condition ? [true expression] : [false expression]

nConverti += (pNewbase > 10 && n >= 10) ? (char)(n + 55) : (char)n;

在三元表达式中使用赋值运算符

+=
,这是不必要的,并且可能会导致混乱,最好用
if else
编写,这取决于你

if (pNewbase > 10 && n >= 10)
{
    nConverti += (char)(n + 55);
}
else
{
    nConverti += (char)n;
}
© www.soinside.com 2019 - 2024. All rights reserved.