Я знаю, что этот ответ очень поздний, но мне было интересно, что никто еще не поставил словарное решение. Я обнаружил, что когда имеешь дело с огромными операторами переключателей, которые ориентированы на данные, подобные этим, часто легче читать, свернуть случай переключения в словарь.
public static readonly IDictionary<int, string> Factors = new Dictionary<int, string> {
{ 1, "Other" },
{ 2, "SIP" },
{ 3, "DIP" },
{ 4, "ZIP" },
{ 5, "SOJ" }
};
public static string GetFormFactor2(int number)
{
string formFactor = string.Empty;
if (Factors.ContainsKey(number)) formFactor = Factors[number];
return formFactor;
}
Это дает вам индекс Maintainability, равный 74 - немного ниже, чем решение для массива из-за связи классов со словарем, но я чувствую, что он более общий, потому что он работает для любого числа типов, которые вы обычно включаете. Как и решение с массивами, оно очень хорошо масштабируется и удаляет много повторяющегося кода.
Вообще говоря, использование подхода, управляемого данными, может помочь вашему коду быть более понятным, потому что он отделяет важные части (в данном случае, условие и результат) от лишнего (в данном случае, переключателя) .