Обратите внимание, что это незавершенный код, но он просто стоит перед небольшой проблемой, так как я использую много концепций ООП C++. у меня может возникнуть проблема при попытке перейти с другой платформы.Получение ссылки на объект для нестатического метода
я получаю сообщение об ошибке при компиляции и заявил ошибку нестатический метод/собственность
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', вы можете не получить 'СТУДЕНТОВ, которые ... * я не знать, где это объявлено! * – Ian
Да, в Main, 'students' не объявляется. Это поле экземпляра в совершенно другом классе. Во всяком случае, какой класс? Во всяком случае, вам нужен экземпляр '' in Main. –
'insertDetail' - это метод экземпляра, а не статический метод, создайте экземпляр для класса и используйте его. ex 'Class c = new Class(); c.insertDetail (..) ' –