さて、ここでは、クラスの配列を作成しようとしています。私のクラスTEAMLEADERは抽象クラスEmployeeから派生しています。しかし、MainにTEAMLEADERのインスタンスを作成しようとすると、TEAMLEADERが見つからないというエラーメッセージが表示されます。クラスのインスタンスを作成できません。#
namespace Lab3
{
public abstract class Employee
{
protected string EmployeeName;
protected int EmployeeNumber;
protected double WeeklySalary;
public Employee (string EmployeeName, int EmployeeNumber, double WeeklySalary)
{
this.EmployeeName = EmployeeName;
this.EmployeeNumber = EmployeeNumber;
this.WeeklySalary = WeeklySalary;
}
public Employee(string EmployeeName)
{
assignID(EmployeeNumber);
}
public override string ToString()
{
return EmployeeName + " " + EmployeeNumber + " " + WeeklySalary;
}
protected virtual double CalcSalary()
{
return CalcSalary();
}//"Virtual" is a keyword that says, "This can be overriden in the derived class."
private static int assignID(int EmployeeNumber)
{
EmployeeNumber.ToString();
EmployeeNumber++;
return EmployeeNumber;
}
}
class Program
{
static void Main(string[] args)
{
Employee[] workerarray = new Employee[4];
workerarray[0] = new TeamLeader("Rachel", 18, 1000000.00, 52000000.00, true);
}
}
}
別のクラス/タブには、TEAMLEADERクラスがあります。
public class TeamLeader:Employee
{
protected double AnnualSalary;
protected bool WeeklyGoal;
public override void CalcSalary()
{
if (WeeklyGoal == true)
{ CalcSalary = (AnnualSalary/52) * 1.10; }
else (CalcSalary = AnnualSalary/52);
}
public TeamLeader(string EmployeeName, int EmployeeNumber, double WeeklySalary, double AnnualSalary, bool WeeklyGoal):base(EmployeeName, EmployeeNumber, WeeklySalary)
{
this.WeeklyGoal = WeeklyGoal;
this.AnnualSalary = AnnualSalary;
}
}
問題は私の主な方法です。 TeamLeaderのインスタンスを作成できない理由を理解できません。それは抽象クラスではないので、メインがそれを認識してインスタンスを作成できないようにすべきですか?
using Lab3;
を自分のメインクラスファイルの先頭に:
同じ名前空間にありますか?あなたはコードのその部分を欠いているようです。 –
これは同じ名前空間にあります(または同じ名前空間にあるはずです)が、別のタブにあります。 –
あなたはteamleaderファイル全体を投稿できますか? Visual Studioを使用している場合は、TeamLeaderのrの直後(メイン)にカーソルを置いて、コントロールを押します。 –