оператор switch

Оператор-переключатель switch
switch (выражение)
{
case константа: операторы
case константа: операторы
...
default: операторы
}

может ли (выражение) содержать функции?
К примеру можно ли пользоваться конструкцией: switch (OrderType()) {...
да, выражение может содержать функцию
switch ( Symbol() ) {
case "EURUSD" : operators;
}



Компилятор пишет
'switch' - different types in switch statement

Что бы это значило? Он на строки ругается?
Build .151

это значит, что в операторе switch допустимы только числовые значения. ругается именно на строки.
Достаточно странно, обычная вроде бы ситуация... это сделано специально? Может, стоит это поправить?
Достаточно странно, обычная вроде бы ситуация... это сделано специально? Может, стоит это поправить?

Это язык С и его стандарты.