CS0131和CS0019。基本逻辑/计算器

时间:2016-02-29 20:47:57

标签: c#

我只是学习C#的初学者。我目前正在研究一种基本的逻辑计算器。

在计算之前我想提出两个安全问题。正确地提供用户答案应该出现计数选项。我在解决这些问题方面遇到了问题。

这是我遇到一些我无法弄清楚的问题的部分:

if ((Twórca = Twórca.ToUpper().Trim() = "DAMIAN")
    &&(Dziewczyna = Dziewczyna.ToUpper().Trim() = "DOROTA"
        || Dziewczyna.ToUpper().Trim() = "DOROTKA"))

Visual Studio说这里有3个错误: 2x CS0131指的是.ToUpper().Trim() 和CS0019引用||

2 个答案:

答案 0 :(得分:1)

=是赋值运算符,你想要==这是等于运算符

另外,你需要解决这个问题

Twórca = Twórca.ToUpper().Trim() = "DAMIAN"

而这样做:

Twórca == "DAMIAN" && Twórca.ToUpper().Trim() == "DAMIAN"

否则,您在第二次比较中将布尔值与字符串进行比较

除非您的意图是将该值分配给Twórca,然后进行比较,在这种情况下请执行以下操作:

Twórca = Twórca.ToUpper().Trim();
Dziewczyna = Dziewczyna.ToUpper().Trim();
if ((Twórca == "DAMIAN")
    &&(Dziewczyna == "DOROTA"
        || Dziewczyna == "DOROTKA"))

答案 1 :(得分:1)

有两个主要问题:

  1. 您正尝试使用=来比较两个字符串。这个运营商分配。你想要==,它比较两件事情是否相等。
  2. 您尝试一次使用=两个以上的内容,或者您​​尝试在if语句中设置字符串(这可以完成,但它是不常见:你必须小心你正在做什么以及何时正确理解你的代码会产生的影响。
  3. 这是您可以编写的一种方式,可以执行您尝试进行的检查。它不会修改TwórcaDziewczyna

    if ((Twórca.ToUpper().Trim() == "DAMIAN")
        && (Dziewczyna.ToUpper().Trim() == "DOROTA"
            || Dziewczyna.ToUpper().Trim() == "DOROTKA"))
    

    效率有点低,因为它可以在ToUpper上运行TrimDziewczyna两次。