考虑以下代码:
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中的一个?
编辑: 我想避免使用枚举,因为值总是代表一个字符串.
我建议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()它.
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |