Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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# 如何在if语句中使用类_C# - Fatal编程技术网

C# 如何在if语句中使用类

C# 如何在if语句中使用类,c#,C#,我正在尝试使用if语句来检查文件是否包含该字母 “M”、“F”或“U” 如果它包含任何其他字母或没有字母,则应返回false 我得到了一个错误: “CS1955 C#非可开票成员”SplitClass.Patient.Gender“不能像方法一样使用。” 如何解决这个问题,以便在if语句中使用GenderOptions类 public class Patient { public int NHSNumber { get; set; } public Da

我正在尝试使用if语句来检查文件是否包含该字母 “M”、“F”或“U”

如果它包含任何其他字母或没有字母,则应返回false

我得到了一个错误:

“CS1955 C#非可开票成员”SplitClass.Patient.Gender“不能像方法一样使用。”

如何解决这个问题,以便在if语句中使用GenderOptions类

 public class Patient
    {
        public int NHSNumber { get; set; }
        public DateTime DateOfBirth { get; set; }
        public string Title { get; set; }
        public string GivenName { get; set; }
        public string Surname { get; set; }
        public GenderOptions Gender { get; set; }

    }

    public enum GenderOptions
    {
        M,
        F,
        U
    };

    public enum TitleOptions
    {
        Mr,
        Master,
        Miss,
        Mrs,
        Ms,
        Mx

    };



    public bool Validation(Patient patient)
    {
        if (patient.NHSNumber > 10) return false;
        if (patient.NHSNumber < 10) return false;
        if (patient.DateOfBirth.Year > DateTime.Today.Year) return false;
        if (patient.DateOfBirth.Year < 1900) return false;
        if (patient.Gender != ("M","F","U")) return false;
    }
公共类患者
{
public int NHSNumber{get;set;}
公共日期时间出生日期{get;set;}
公共字符串标题{get;set;}
公共字符串GivenName{get;set;}
公共字符串姓氏{get;set;}
公共性别选项性别{get;set;}
}
公共枚举性别选项
{
M
F
U
};
公共枚举标题
{
先生
大师,
错过,
夫人
太太
Mx
};
公共bool验证(患者)
{
如果(patient.NHSNumber>10)返回false;
如果(patient.NHSNumber<10)返回false;
如果(patient.DateOfBirth.Year>DateTime.day.Year)返回false;
if(patient.DateOfBirth.Year<1900)返回false;
if(patient.Gender!=(“M”、“F”、“U”)返回false;
}
我也计划对标题选项做同样的操作,我只是对如何在if语句中正确使用Gender类感到困惑

//伪码 如果(文件名)不包含“M”、“F”或“U”

然后是Console.WriteLine(“不包含有效的性别”)


您可以使用Enum.IsDefined

if (!Enum.IsDefined(typeof(GenderOptions), patient.Gender)){
    return false;
}

你也可以使用Enum.TryParse或其他什么

你说检查文件名时包含字母m、f或u,但在你的代码中你比较的是性别选项,这是一个枚举?@PeterB我肯定这是一个重复,但不是那个-他试图验证的是一个枚举,而不是一个字符串