Razor标记中的字符串开关,在case语句中使用冒号导致错误"未终止的字符串文字"

Kev*_*vin 6 c# string-literals switch-statement razor

当我想在我的字符串开关case语句中使用冒号":"时,我得到错误"unterminated string literal",我该如何解决这个问题,为什么会出错?

码:

@switch (stringText)
{
    case "aaaa:ggg":
        Do something...
        break;
    case "bbbb:ggg":
        Do something else...
        break;
 }
Run Code Online (Sandbox Code Playgroud)

如果通过这样做修复它,但是没有找到它是一个好的解决方案:

const string extra = ":ggg";
@switch (stringText)
{
    case "aaaa" + extra:
        Do something...
        break;
    case "bbbb" + extra:
        Do something else...
        break;
 }
Run Code Online (Sandbox Code Playgroud)

编辑:使用MVC Razor语法

JLR*_*she 4

如果您在实用程序类中将值定义为常量,然后引用这些常量而不是在 switch 语句中使用字符串文字,会怎么样?

class Constants
{
     public const string Aaaa = "aaaa:gggg";
     public const string Bbbb = "bbbb:gggg";
}
Run Code Online (Sandbox Code Playgroud)

...

@switch (stringText)
{
    case Constants.Aaaa:
        Do something...
        break;
    case Constants.Bbbb:
        Do something else...
        break;
 }
Run Code Online (Sandbox Code Playgroud)