我正在尝试理解概念“类”并编写一些简单的程序。但是我的函数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
}
}
}
答案 0 :(得分:3)
您正在调用Check
,就像它是静态方法一样。它是实例方法,所以它应该调用p1.Check()
。
答案 1 :(得分:2)
Compiler Error CS0120:非静态字段,方法或属性“成员”需要对象引用
因此,为了使用非静态字段,方法或属性,必须首先创建类的对象实例
您需要在Task
类对象
p1.Check();
如果您将Check()
方法声明为静态,则可以按照当前的方式调用它。
public static void Check()
{
if (UserVer == Key)
Console.WriteLine("Good");
}