以下、私は「Staff」という名前のシンプルなクラスを作成しました。 mainメソッドで新しいstaffオブジェクトをインスタンス化しようとすると、すべてが完璧に機能します。なぜそれはメインの方法では動作しますが、私のファーゼのメソッド "Frog"では動作しませんか?メインメソッドではない別のクラスの中でオブジェクトをインスタンス化する
class staff
{
//Fields
private string nameOfStaff;
private const int hourlyRate = 30;
private int hWorked;
//Properties
public int HoursWorked
{
get
{
return hWorked;
}
set
{
if (value > 0)
hWorked = value;
else
hWorked = 0;
}
}
//Methods
public void PrintMessage()
{
Console.WriteLine("Calculating Pay...");
}
public int CalculatePay()
{
PrintMessage();
int staffPay;
staffPay = hWorked * hourlyRate;
if (hWorked > 0)
return staffPay;
else
return 0;
}
public int CalculatePay(int bonus, int allowances)
{
PrintMessage();
if (hWorked > 0)
return hWorked * hourlyRate + bonus + allowances;
else
return 0;
}
public override string ToString()
{
return "Name of Staff = " + nameOfStaff + ", hourlyRate = " + hourlyRate + ", hWorked = " + hWorked;
}
//Constructors
public staff(string name)
{
nameOfStaff = name;
Console.WriteLine("\n" + nameOfStaff);
Console.WriteLine("-------------------------");
}
public staff(string firstName, string lastName)
{
nameOfStaff = firstName + " " + lastName;
Console.WriteLine("\n" + nameOfStaff);
Console.WriteLine("-------------------------");
}
}
class Program
{
static void Main(string[] args)
{
// Instanciating an Object
int pay;
staff staff1 = new staff("Peter");
staff1.HoursWorked = 160;
pay = staff1.CalculatePay(1000, 400);
Console.WriteLine("Pay = {0}", pay);
}
class frog
{
// Why can't I instantiate a staff member here?
}
あなたはどういうことができないのですか?あなたは何をしようとしていますか?あなたはどんなエラーを出していますか? –
どういう意味ですか? 'staff'型のフィールドを実装してインスタンス化することはできません。 – InBetween
Hmmm - できます。あなたはあなたのクラスに静的かsomかをマークしていないと確信していますか?あなたはどんなエラーを出していますか? –