using System.Collections.Generic;
abstract class FileCabinetService
protected readonly List<string> list = new List<string>();
public void CerateRecord(string parameter)
ValidateParameter(parameter);
public void EditRecord(int id, string parameter)
ValidateParameter(parameter);
list.Insert(id, parameter);
protected abstract void ValidateParameter(string parameter);
class FileCabinetDefaultService : FileCabinetService
protected override void ValidateParameter(string parameter)
throw new ArgumentNullException("Parameter is null", nameof(parameter));
if (string.IsNullOrWhiteSpace(parameter) || parameter.Length >= 5)
throw new ArgumentException("Parameter has lenth more or equal 5");
class FileCabinetCustomService : FileCabinetService
protected override void ValidateParameter(string parameter)
throw new ArgumentNullException("Parameter is null", nameof(parameter));
if (parameter.Contains('a') || parameter.Contains('A'))
throw new ArgumentException("Parameter contains letter A", nameof(parameter));
static void Main(string[] args)
Console.Write("Enter the name: ");
string name = Console.ReadLine();
while (string.IsNullOrEmpty(name))
Console.WriteLine("Not correct. Try again.");
name = Console.ReadLine();
var fileCabinet = new FileCabinetDefaultService();
fileCabinet.CerateRecord(name);
catch (ArgumentException exception)
Console.WriteLine(exception.Message);