2

我正在尝试理解“类”的概念并编写一些简单的程序。但是我的函数 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

    }
}
}
4

2 回答 2

5

您正在调用Check,就好像它是静态方法一样。它是实例方法,所以它应该被调用p1.Check()

于 2013-10-19T20:21:19.093 回答
3

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

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

Task您需要在类对象的帮助下调用它

p1.Check();

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

 public static void Check()
 {
    if (UserVer == Key)
        Console.WriteLine("Good");            
 }
于 2013-10-19T20:22:36.460 回答