Cтроковые константы

Любимая работа программистов писать везде строковые константы.


b.GetProperty("Name");
c.Name.Replace("Name","Name");
a["Name"] = "Name";
switch(value) {
 case "Name" : return a["Name"];
}

В этом всем хаосе размазанном по всему проекту, очень сложно методом поиска и замены, рефракторить код, потому что х.з. где какой “Name”?!

Мое решение этой проблемы, вписать константы в бизнес логику класса к примеру:


class A {
  public const string Name = "NameA";
}

Легким движением new константа переопределяется:


class B : A {
  public new const string Name = "NameB";
}

Теперь строковые константы это часть бизнес логики, и по кликну на Find All Reference по A.Name я сразу получу все места применения этой константы.


switch (value) {
 case A.Name: 
  // to do ...
  break;
 case B.Name:
  // to do ...
  break;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *