C# 为什么我的编译器说缺少了一个半冰激凌?

C# 为什么我的编译器说缺少了一个半冰激凌?,c#,visual-studio-code,C#,Visual Studio Code,我试图运行这段代码,它说我的IDE中没有问题,但我的编译器说错误CS 1002:;预料之中 我找不到 using System; namespace code { } class Program { static void Main(string[] args) { Console.WriteLine("Ask me anything!"); string userQuestion = Console.ReadLine();

我试图运行这段代码,它说我的IDE中没有问题,但我的编译器说错误CS 1002:;预料之中

我找不到

using System;

namespace code
{

}
class Program
{
    static void Main(string[] args)
{
        Console.WriteLine("Ask me anything!");

            string userQuestion = Console.ReadLine();

                string areYouABot = "I am not!";

                    if (userQuestion = "Are you a bot?");
                    {
                        Console.WriteLine(areYouABot);


                    }


} 
}
将类放在名称空间中。 如果语句需要布尔值,则更改为== 在if语句或任何循环之后不放分号的原因与在namespace、class或Main之后不放分号的原因相同。他们都在包装东西,而不是做什么。如果if/loop语句仅包装一行,则会出现异常。如果userQuestion==你是机器人吗?Console.WriteLineareYouABot; 如果您想对其中任何一个进行更多解释,请在下面的评论中告诉我


编辑后包含以下评论。

userQuestion=您是机器人吗?-您应该使用==进行比较:userQuestion==您是机器人吗?。single=表示赋值。看起来您实际上有一个额外的分号。之后,你是一个机器人;也许这让编译器感到困惑。if行上没有分号。您会惊讶于格式化代码在查找问题时的效率。尝试格式化您的代码。也就是说,这是错误的:如果userQuestion=你是机器人吗?;。if语句需要括号中的布尔表达式。你有userQuestion=youareabot?,它不是一个布尔表达式,而是一个字符串赋值语句。另外,在它后面加一个分号,就完成了条件语句。以下代码块“Console.WriteLineareYouABot;”将始终运行,因为IF是completed@xdestinty编译器看到一个赋值a single=,它希望后面跟一个分号。然而,问题不是你缺少分号,而是你不应该有作业。编译程序无法理解你的意图,sadlyI说@Flydog57应该添加他的响应作为OP的答案,并将其标记为已接受的答案。小警告:你可以在if后加上semikolon,但大多数情况下,包括这段时间的初学者都是错误的。控制结构控制下一个区块或下一个Semikolon的一切,任何时候都是第一位的。用if或循环来管理一行是很有用的语法。为了澄清@Christopher的语句,因为if语句中只有一行,所以可以从中删除{},它仍将按预期执行。但是,我想不出有哪种情况需要在if语句之后直接使用分号。相反,您可能需要类似于如果userQuestion==您是机器人吗?Console.WriteLineareYouABot;你的第三点需要一些努力。首先,在C语言中,在类后面加分号是合法的;这不是必需的,但却是合法的。为什么?因为它是C++中需要的,C被设计成熟悉的C++程序员容易拾取。但更重要的是,我们经常在if语句后面加分号。ifx-M;是以分号结尾的if语句。实际的规则是:if的结果是一条语句,{statements}形式的块是一条语句,这样的块不以分号结尾。
using System;

namespace code
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Ask me anything!");
         string userQuestion = Console.ReadLine();
         string areYouABot = "I am not!";

         if (userQuestion == "Are you a bot?")
         {
            Console.WriteLine(areYouABot);
         }
      }
   } 
}