为什么我们不能在没有方法的情况下在类中使用console.write或console.writeLine



有人能告诉我为什么我们不能在class without Method中使用Console.WriteLine吗。我正试图做到这一点,但同谋犯了一个错误。我知道这是错误的,但我只想知道这样做的正当理由。

 public  class AssemblyOneClass2
    {
       Console.WriteLine("");
    }

问题不是使用WriteLine。除了声明成员变量(和属性事件等)或函数之外,不能在那里放置任何代码。对WriteLine的类似代码的调用属于这些函数的主体。至于原因,您希望该代码何时运行?我想你不能回答这个问题,编译器也不能。

方法是一个包含一系列语句的代码块。程序通过调用方法并指定任何所需的方法参数来执行语句。在C#中,每个执行的指令都是在方法的上下文中执行的。

因此必须写入方法内部。否则CLR不知道应该在什么时候执行该代码。这是C#的基础。

class封装构造函数、函数、字段和属性。因此,您只能在函数或构造函数中编写任何代码语句。

    public class AssemblyOneClass2
    {
        static void Main(string[] args)
        {
            Console.WriteLine("");
        }
    }

你需要一个实际的方法来实现任何事情。上面的代码段显示了运行"Console.Writeline("");" 的正确方法

因为Console.WriteLine("");不能是(或)不是所述类AssemblyOneClass2的成员字段。

多说几句;在定义类的同时定义成员字段(数据成员和方法),以便为该类提供一些行为以及它可以执行的所有操作。

例如:具有NameCity属性的Student

Class student
{
  public string Name {get;set;}
  public string City {get;set;}
}

只需在类中调用Writeline()方法;你认为你在定义什么行为?

即使你在下面保持类声明为空,这样说仍然没有什么意义;还没有定义类的行为,它现在只是一个存根。

 public  class AssemblyOneClass2
    {
    }

我认为只有在创建所创建类的对象时才会分配内存,所以让我们想象一下,我们可以编写Console.WriteLine();在课堂上。现在想象一下,您想要从主函数中执行这一行。你该怎么称呼它?认为通常是Obj。<方法/函数/数据成员>。编译器将如何知道它必须执行Console.WriteLine();在课堂上。因此,为了让编译器执行这一行,它必须是已分配内存的东西的一部分,并且可以从类的实例(即我们创建的对象)调用。

我希望我在这里讲得有点道理。

最新更新