Практическое занятие по C#: «Выявление ошибок в коде»
Цель:
Научить студентов выявлять синтаксические ошибки, логические ошибки, нарушения принципов ООП, плохие практики и анти паттерны в небольшом фрагменте кода.
Задание для студента
Вам предоставлен фрагмент кода, в котором допущены ошибки и нарушены базовые принципы программирования.
Ваша задача:
1. Найти все ошибки и нарушения.
2. Для каждой ошибки написать:
o где она находится (строка или фрагмент);
o какой тип ошибки (синтаксическая, логическая, нарушение принципов ООП, плохое именование, нарушение SOLID и т. д.);
o как её исправить.
Код с ошибками
using System;
using System.IO;
public class FileReader
{
public virtual string Read(string path)
{
return File.ReadAllText(path);
}
}
public class SafeReader : FileReader
{
public override string Read(string path)
{
if (!File.Exists(path))
Console.WriteLine("Missing");
return File.ReadAllText(path);
}
}
public class Logger
{
public void Log(string msg)
{
File.WriteAllText("log.txt", msg);
}
}
public class Program
{
static void Main()
{
FileReader r = new SafeReader();
string data = r.Read("nofile.txt");
Logger log = new Logger();
log.Log(data);
Console.WriteLine("Done");
}
}