C# 在if语句中使用字符串抛出错误;操作员'||';不能应用于操作数字符串和字符串;
嗨,我的c#已经不是以前的样子了,在使用java脚本一段时间后,我又回来了。 本质上,我只是尝试使用数组索引执行一个简单的if语句,但收到了错误消息C# 在if语句中使用字符串抛出错误;操作员'||';不能应用于操作数字符串和字符串;,c#,C#,嗨,我的c#已经不是以前的样子了,在使用java脚本一段时间后,我又回来了。 本质上,我只是尝试使用数组索引执行一个简单的if语句,但收到了错误消息 "Operator '||' cannot be applied to operands string and string" 为什么这是不允许的,因为它基本上变成了一个傻瓜 string[] userCustomAnswerArray = {"It needs to be reaplaced", "This coul
"Operator '||' cannot be applied to operands string and string"
为什么这是不允许的,因为它基本上变成了一个傻瓜
string[] userCustomAnswerArray = {"It needs to be reaplaced", "This could be improved", "I struggle to see this"};
int customResponseindex = rand.Next(0, 3);
string[] questionResponseArray = { "Yes", "No but not a problem", userCustomAnswerArray[customResponseindex] };
int questionResponseIndex = rand.Next(0, 3);
string userAnswer = questionResponseArray[questionResponseIndex];
if (userAnswer = questionResponseArray[0] || userAnswer = questionResponseArray[1])
{
}
谢谢你的帮助
userAnswer=questionResponseArray[0]
不正确
=
是赋值运算符,而=
是相等运算符相等运算符是=
,而不是=
…您忘记了一个=
符号,请改为使用用户答案==questionResponseArray[0]
,编译错误将消失。我认为你的困惑来自这样一个事实:JS是动态类型的,而C#是静态类型的。另外,在C#中,不能将逻辑运算符(|
)应用于任何对象(它需要重载true和false以及|
运算符),只能应用于bool,而在JS中可以(JS中的对象总是truthy)@MindSwipe您可以将逻辑运算符| |应用于c中的对象-但仅在特定情况下-类型必须重载true
和false
运算符以及
运算符。使用赋值运算符=,使用==相等operator@ZoharPeled谢谢你指出这一点。我能够及时编辑我的评论以包含你的信息