これは未完成のコードですが、いくつかの小さな問題に直面しています。私は多くの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();
}
}
のインスタンスを作成します。 * – Ian
はい、メインでは、「students」は宣言されていません。完全に異なるクラスのインスタンスフィールドです。メインはどんなクラスですか?とにかく、 '' Main ''のインスタンスが必要です。 –
'insertDetail'は静的メソッドではなく、インスタンスメソッドです。クラスのインスタンスを作成して使用します。 ex 'クラスc = newクラス(); c.insertDetail(..) ' –