Я новичок в C # и пытаюсь понять основные концепции. Спасибо заранее за вашу помощь. У меня есть несколько примеров классов ниже (введенных в этом окне, поэтому могут быть некоторые ошибки), и у меня есть два вопроса:
Можно ли вызвать метод производного класса, который выполняет код в методе базового класса с тем же именем, а затем выполняет код в методе производного класса? Каждый производный класс должен будет выполнить код базового класса для RunCheck, а затем выполнить специализированный код, специфичный для этого класса. Я мог бы назвать RunCheck () чем-нибудь еще в базовом классе, а затем вызвать его, когда я вызываю RunCheck () производного класса, но тогда я должен не забыть вызывать его в RunCheck () в производном классе.
В the 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}
}