Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将char属性限制为特定的选项集_C#_Asp.net Mvc_Attributes - Fatal编程技术网

C# 将char属性限制为特定的选项集

C# 将char属性限制为特定的选项集,c#,asp.net-mvc,attributes,C#,Asp.net Mvc,Attributes,C#中的哪个属性可以将公共字符性别限制为M、F和O,否则将显示错误消息 没有这样的属性,但您可以这样做 public class FOO { private char _foo; public char foo { get { return _foo; } set { if (value == 'M'

C#中的哪个属性可以将
公共字符性别
限制为
M
F
O
,否则将显示错误消息

没有这样的属性,但您可以这样做

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");
                    }
              }
            }
        }
或者,您可以尝试枚举,并根据需要将其与接口绑定

public enum Gender 
{ 
    M,
    F,
    O
}
你可以在这里用

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

}

没有这样的属性,但您可以这样做

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");
                    }
              }
            }
        }
或者,您可以尝试枚举,并根据需要将其与接口绑定

public enum Gender 
{ 
    M,
    F,
    O
}
你可以在这里用

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

}

当您不需要存储值时,枚举非常好。当您确实需要一个(在本例中,我认为您需要)时,我更喜欢使用公共静态类,如下所示:

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

    }
然后,您可以将其类似于枚举使用,但在本例中,您实际上有一个值:

Gender.Male

当您不需要存储值时,枚举非常好。当您确实需要一个(在本例中,我认为您需要)时,我更喜欢使用公共静态类,如下所示:

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

    }
然后,您可以将其类似于枚举使用,但在本例中,您实际上有一个值:

Gender.Male

使用枚举和单选按钮,而不必验证用户是否键入了有效的字符,这对于像
public enum Gender{Male,Female,Other}
和property
public Gender UserSelectedGender{get;set;}
这样的双方来说似乎都很尴尬,因为您无法期望属性。。。是吗?那使用枚举和单选按钮,而不必验证用户是否键入了有效的字符,这对于
public enum Gender{Male,Female,Other}
和property
public Gender UserSelectedGender{get;set;}
这两个方面来说都是很尴尬的,因为你不能期望得到属性。。。对吧?谢谢你。在第一种方法中,哪个映射到SQL表,
\u foo
foo
?foo是公共属性。那里是私人领地。非常感谢。在第一种方法中,哪个映射到SQL表,
\u foo
foo
?foo是公共属性。那里是私人领地。很好的解决方案,但在我的情况下,另一个更好。非常感谢。很好的解决方案,但在我的情况下,另一个更好。非常感谢。