7

CSHTML カミソリ ページに次のコードがあります。

@{
    var sort = ViewBag.Sort.ToString();
    switch (sort)
    {
        case "None": Html.Action("SortNone"); break;
        case "Name": Html.Action("SortName"); break;
        case "Date": Html.Action("SortDate"); break;
    }
}

ただし、これはコンパイラ エラー メッセージで失敗します。

CS0151: A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type

しかし、並べ替えは文字列です! これを一連の if/else ステートメントとして書き直すとうまくいきますが、それほどエレガントではありません。

4

1 に答える 1