我是C#的新手,我試圖理解基本概念。預先感謝您的幫助。下面我有一些樣本類(在此窗口中鍵入因此可能會有一些錯誤),並有兩個問題:擴展基類方法
是否有可能調用基類方法與執行的代碼派生類中的方法同名,然後執行派生類方法中的代碼?每個派生類都需要爲RunCheck執行基類代碼,然後執行專用於其類的代碼。我可以在基類中命名RunCheck(),然後在調用派生類的RunCheck()時調用它,但是我必須記得在派生類中的RunCheck()上調用它。
在Program.cs中,我想輸出所有帶有空白值的字段,如果它在不在派生類中的字段上,那麼我傳入。我會傳入什麼內容?
這裏是我的代碼:
class baseCheck
{
public DateTime StartTime { get; set; }
public DateTime LastRun { get; set; }
public int Runs { get; set; }
//Others
public void RunCheck()
{
if (Started != null)
started = DateTime.Now;
LastRun = DateTime.Now;
Runs++;
}
}
class FileCheck : baseCheck
{
public string FileName { get; set; }
public void RunCheck()
{
//I want all the code in the base class to run plus
//any code I put here when calling this class method
}
}
class DirectoryCheck : baseCheck
{
public string DirectoryName { get; set; }
public void RunCheck()
{
//I want all the code in the base class to run plus
//any code I put here when calling this class method
}
}
//Program.cs
static void Main()
{
//Create derived class - either DirectoryCheck or FileCheck
//depending on what the user chooses.
if (Console.ReadLine()=="F")
{
FileCheck c = new FileCheck();
}
else
{
DirectoryCheck c = new DirectoryCheck();
}
PrintOutput(c);
}
private void PrintOut(What do I put here?)
{
Console.WriteLine("Started: {0}",f.StartTime)
Console.WriteLine("Directory: {0}", f.DirectoryName)
Console.WriteLine("File: {0}", f.FileName}
}
在你的派生方法中,調用'super.RunCheck()'。它會調用父類的方法。 – Doodloo 2011-03-23 03:24:24