Mam prostą metodę switch z case w kontrolerze core mvc, która działa bez problemu.
Ta sama metoda umieszczona w aplikacji Console, już jest błędna. Metoda nie odwołuje się do niczego z "zewnątrz".
Jeżeli w kontrolerze usunę przestrzenie AspNetCore.Mvc i .Models, metoda nadal jest prawidłowa. Co więc sprawia, że
w klasycznym rozwiązaniu ta metoda jest błędna? Czy trzeba wcześniej wykonać rzutowanie elementów tablicy na konkretne typy?
static string[] Index()
{
object[] data = new object[] { 275M, 29.95M, "jabłka", "gruszki", 10, 100 };
decimal total = 0;
for (int i = 0; i < data.Length; i++)
{
switch (data[i])
{
case decimal decimalValue:
total += decimalValue;
break;
case int intValue when intValue > 50:
total += intValue;
break;
}
}
return (new string[] { $"Razem: {total:C2}" });