编译器错误 CS0120

本文关键字:CS0120 错误 编译器 | 更新日期: 2023-09-27 18:36:01

我试图理解概念"类"并编写一些简单的程序。但是我的函数 Check() 不正确。请跟着我到右边。

namespace ConsoleApplication2
{
    public class Task
    {
        public string RusVer { get; set; } 
        public string Key { get; set; } 
        public string UserVer { get; set; }

        public void Check()
        {
            if (UserVer == Key)
                Console.WriteLine("Good");            
        }
    }
class Program
{
    static void Main(string[] args)
    {
        Task p1 = new Task();
        p1.RusVer = "Привет, Мир!";
        p1.Key = "Hello, World!";
        Console.WriteLine(p1.RusVer);
        Console.WriteLine("Translate it: ");
        p1.UserVer = Convert.ToString(Console.ReadLine());
        Console.WriteLine(p1.UserVer);
        Task.Check(); //errorCS0120
    }
}
}

编译器错误 CS0120

你调用Check就好像它是静态方法一样。它是实例方法,因此应称为p1.Check()

编译器错误 CS0120:非静态字段、方法或属性"成员"需要对象引用

因此,为了使用非静态字段、方法或属性,必须首先创建类的对象实例

您需要借助类对象调用它Task

p1.Check();

如果您将Check()方法声明为静态方法,则可以像当前一样调用它。

 public static void Check()
 {
    if (UserVer == Key)
        Console.WriteLine("Good");            
 }