C# 在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

嗨,我的c#已经不是以前的样子了,在使用java脚本一段时间后,我又回来了。 本质上,我只是尝试使用数组索引执行一个简单的if语句,但收到了错误消息

"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谢谢你指出这一点。我能够及时编辑我的评论以包含你的信息