表示const字符串的C#类属性

Vic*_*tor 2 c# asp.net

考虑以下代码:

public static class PredefinedStrings
{
    public const string Golf = "Golfing";
    public const string Basketball = "Basketball";
    public const string HoolaHoops = "Hulahoops";
}

public class Sports 
{ 
   public string Name { get; set; }
}

如何强制Sports类的Name属性仅使用PredifinedStrings中的一个?

编辑: 我想避免使用枚举,因为值总是代表一个字符串.

Bro*_*ass 5

我建议enum改用:

public enum SportName { Golfing, Basketball };

public class Sports 
{ 
   public SportName Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

那么典型的任务就是

var s = new Sports();
s.Name = SportName.Basketball;
Run Code Online (Sandbox Code Playgroud)

即便如此,它仍然没有强制执行,因为你仍然可以做Name = (SportName)42;但却更难以出错 - 但你当然可以将自定义逻辑放入setter来过滤掉这些无效值.

此外,如果您需要枚举值的字符串表示,请使用ToString()它.