Soy nuevo en C# y trato de entender los conceptos básicos. Gracias de antemano por su ayuda. Tengo algunas clases de muestra a continuación (mecanografiadas en esta ventana lo que puede haber algunos errores) y tienen dos preguntas:Ampliando un método de clase base
¿Es posible llamar a un método de la clase derivada que ejecuta el código en el método de la clase base con el mismo nombre, luego ejecuta el código en el método de clase derivada? Todas las clases derivadas deberán ejecutar el código de clase base para RunCheck y luego realizar un código especializado específico para su clase. Podría nombrar RunCheck() algo más en la clase base y luego llamarlo cuando llame al RunCheck() de la clase derivada, pero luego debo recordar llamarlo en RunCheck() en la clase derivada.
En el Program.cs quiero mostrar todos los campos con un valor en blanco si está en un campo que no está en la clase derivada que paso. ¿Qué pasaría?
Aquí está mi código:
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}
}
En su método derivado, llame a 'super.RunCheck()'.Llamará al método de clase padre. – Doodloo