我目前正在学习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# 中三元的文档,但没有找到任何解决方案,我什至问了我的大学老师,但他也无法帮助我。我还尝试更新我的框架和视觉工作室,但仍然没有改变(即使我真的不认为问题来自那里)。
三元运算符的工作原理如下:
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;
}