Visual C# 中的继承代码

本文关键字:继承 代码 Visual | 更新日期: 2023-09-27 18:30:46

我有以下代码,我不明白我的错误在哪里?

代码如下:

using System;
using System.Collections;
namespace ConsoleApplication5
{
  static void Main(string[] args)
 {
   class Program
     {
      public class Animal
      {
        public virtual void Greet()
        {
            Console.WriteLine("Hello, I'm some sort of animal!");
        }
    }
    public class Dog : Animal
    {
        public override void Greet()
        {
            Console.WriteLine("Hello, I'm a dog!");
        }
    }
}

它没有被编译,我收到以下错误:在第 24 行 类型或命名空间定义,或预期的文件结尾在第 6 行 } 是预期的

我不明白我做错了什么,你能帮我吗?谢谢。如果重要的话,我在Visual Studio 2015中编译了这个。

顺便说一句,我从本教程中获得了部分代码:http://csharp.net-tutorials.com/classes/inheritance/

Visual C# 中的继承代码

我相信你对作用域有困惑。您在不适用的方法中定义了一个类,您应该在命名空间作用域下定义类。

应该是这样的(这是一个伪代码)

 namespace YourNamespace
 ...class Program
 .... public class animal
 .... public class dog : animal
 .... static void main

不能在方法主体中定义类,这是这里发生的情况:

  static void Main(string[] args)
 {
   class Program
     {

相反,您需要将 Main() 方法的代码放在 Program 类中:

class Program
{ // This brace marks the beginning of the Program class
    static void Main(string[] args) // This is a method defined WITHIN Program class
    { // The brace marks the beginning of the Main method
       ....
    } // This brace marks the end of the Main method
} // This brace closes the Program class