Bitte beachten Sie, dass dies unvollständiger Code ist, aber nur mit einem kleinen Problem konfrontiert, wie ich eine Menge von C++ OOP-Konzept verwenden. Ich könnte ein Problem haben, wenn ich versuche, von einer anderen Plattform zu wechseln.Getting Objektreferenz für die nicht statische Methode
ich Fehler beim Kompilieren und erklärte, nicht-statische Methode/Eigenschaft Fehler
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();
}
}
Da Ihr 'Main' ist' static', können Sie nicht bekommen 'Studentische die ... * Ich glaube nicht, wissen, wo es erklärt wird! * – Ian
Ja, in Main, 'Studenten' ist nicht erklärt. Es ist ein Instanzfeld in einer ganz anderen Klasse. In welcher Klasse ist Main überhaupt? Wie auch immer, du brauchst eine Instanz von '' in Main. –
'insertDetail' ist eine Instanzmethode nicht statische Methode, erstellen Sie eine Instanz für' Class' und verwenden Sie sie. ex 'Klasse c = neue Klasse(); c.insertDetail (..) ' –