Предположим, что у меня есть возможность идентифицировать путь кода, который нужно взять на основе сравнения строк, или iffing типа:
Что происходит быстрее и почему?
switch(childNode.Name)
{
case "Bob":
break;
case "Jill":
break;
case "Marko":
break;
}
if(childNode is Bob)
{
}
elseif(childNode is Jill)
{
}
else if(childNode is Marko)
{
}
Обновление: Основная причина, по которой я спрашиваю об этом, состоит в том, что оператор switch имеет особое значение для того, что считается случаем. Например, это не позволит вам использовать переменные, а только константы, которые перемещаются в основную сборку. Я предположил, что это ограничение было связано с некоторыми фанковыми вещами, которые он делал. Если это только перевод в elseifs (как комментирует один плакат), то почему мы не допускаем переменные в операторах case?
Предостережение: Я пост-оптимизирую. Этот метод вызывается много раз в медленной части приложения.