Program własnego pomysłu demonstrujący różnice w efektach pokrywania w klasach potomnych metod zwykłych i wirtualnych poniższej klasy.
public class Wykonawca
{
public void PracaA(string FileName)
{
StringBuilder sb = new StringBuilder();
string[] lines = File.ReadAllLines(FileName);
for (int i = 0; i < lines.Length; i++)
{
sb.Clear();
for (int j = 0; j < lines[i].Length; j++)
{
sb.Append(lines[i][j]);
sb.Append('_');
}
lines[i] = sb.ToString();
}
string FileName2 = FileName.Replace(".", "2.");
File.WriteAllLines(FileName2, lines);
}
public virtual void PracaB()
{
StringBuilder sb = new StringBuilder();
string[] lines = File.ReadAllLines(FileName);
foreach (string s in lines)
{
sb.AppendLine(s);
sb.AppendLine('---------------------------------------------');
}
string FileName2 = FileName.Replace(".", "2.");
File.WriteAllText(FileName2, sb.ToString());
}
}