请注意,这是未完成的代码,但只是面临一些小问题,因为我使用了很多C++ OOP概念。当尝试从另一个平台更换时,我可能会遇到一些问题。获取非静态方法所需的对象引用
所有从未使用Class
作为你的类名的编制,并指出当非静态方法/属性错误
using System;
public class People
{
string name;
int age;
int height;
public virtual void insertDetail(People stu)
{
Console.Write("Please enter name : ");
stu.name = Console.ReadLine();
Console.Write("Please enter age : ");
while(!int.TryParse(Console.ReadLine(), out stu.age))
{
Console.WriteLine("You enter characters! Please re-insert");
}
Console.Write("Please enter height: ");
while(!int.TryParse(Console.ReadLine(), out stu.height))
{
Console.WriteLine("You enter characters! Please re-insert");
}
}
}
public class Class : People
{
static People[] students = new People[5];
public override void insertDetail(People stu)
{
Console.WriteLine("==================================");
base.insertDetail(stu);
}
public static void Main(string[] args)
{
for (int i = 0; i < students.Length; i++)
{
students[i] = new People();
insertDetail(students[i]);
}
Console.ReadKey();
}
}
创建一个实例。由于你的'Main'是'static',你不能得到'students'这... *我不知道它在哪里宣布!* – Ian
是的,在Main中,'学生'没有被宣布。这是一个完全不同类的实例领域。无论如何,Main是什么课程?无论如何,你需要在Main中有一个''''的实例。 –
'insertDetail'是一个不是静态方法的实例方法,为'Class'创建一个实例并使用它。 ex'Class c = new Class(); c.insertDetail(..)' –