将char属性限制为某组选项

时间:2015-12-29 15:41:43

标签: c# asp.net-mvc attributes

C#中的哪个属性只能将public char gender限制为MFO,否则会出现错误消息?

2 个答案:

答案 0 :(得分:3)

没有这样的属性,但你可以做这样的事情。

public class FOO 
        {
            private char _foo;
            public char foo 
            {
                get { return _foo; }
                set {
                    if (value == 'M' || value == 'F' || value == 'O')
                    {
                        _foo = value;
                    }
                    else 
                    {
                        throw new Exception("invalid Character");
                    }
              }
            }
        }

或者您可以尝试ENUM并根据需要将其与界面绑定。

public enum Gender 
{ 
    M,
    F,
    O
}

你可以在这里使用

public class FOO 
{
   public Gender gender {get;set;} 

}

答案 1 :(得分:1)

当您不需要存储值时,枚举非常好。如果你确实需要一个(在这种情况下我认为你这样做),我更喜欢使用公共静态类,如下所示:

public static class Gender
    {
        public const char Male = 'M';
        public const char Female = 'F';
        public const char Other = 'O';

    }

然后你可以使用它类似于枚举,但在这种情况下你实际上有一个值:

Gender.Male