C# 无法使用枚举隐式转换类型

C# 无法使用枚举隐式转换类型,c#,asp.net-mvc,asp.net-mvc-4,enums,C#,Asp.net Mvc,Asp.net Mvc 4,Enums,正在尝试解决此问题。似乎无法将一个num分配给另一个num,即使它们实际上是相同的 无法将类型“Project.Models.Concern.YesNo”隐式转换为 “Project.ViewModels.PatientConcernsViewModel.YesNo”。明确的 转换已存在。是否缺少转换 在没有类的情况下将枚举公开-这样他们就可以在没有多个定义的情况下共享它 public enum YesNo { Yes, No } public class Concern {

正在尝试解决此问题。似乎无法将一个num分配给另一个num,即使它们实际上是相同的

无法将类型“Project.Models.Concern.YesNo”隐式转换为 “Project.ViewModels.PatientConcernsViewModel.YesNo”。明确的 转换已存在。是否缺少转换

在没有类的情况下将枚举公开-这样他们就可以在没有多个定义的情况下共享它

public enum YesNo
{
    Yes,
    No
}

public class Concern
{
    public int ConcernID { get; set; }
    public YesNo LifeExpectancy { get; set; }
    public YesNo CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public YesNo LifeExpectancy { get; set; }        
    public YesNo CollateralHistoryAvailable { get; set; }
}
在没有类的情况下将枚举公开-这样他们就可以在没有多个定义的情况下共享它

public enum YesNo
{
    Yes,
    No
}

public class Concern
{
    public int ConcernID { get; set; }
    public YesNo LifeExpectancy { get; set; }
    public YesNo CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public YesNo LifeExpectancy { get; set; }        
    public YesNo CollateralHistoryAvailable { get; set; }
}
去掉YesNo枚举并用System.Boolean替换它。尽可能使用系统类型

public class Concern
{
    public int ConcernID { get; set; }
    public bool LifeExpectancy { get; set; }
    public bool CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public bool LifeExpectancy { get; set; }        
    public bool CollateralHistoryAvailable { get; set; }

}
去掉YesNo枚举并用System.Boolean替换它。尽可能使用系统类型

public class Concern
{
    public int ConcernID { get; set; }
    public bool LifeExpectancy { get; set; }
    public bool CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public bool LifeExpectancy { get; set; }        
    public bool CollateralHistoryAvailable { get; set; }

}
为什么不确定YesNo枚举的范围,以便两者都访问同一个对象

public enum YesNo
{
    Yes,
    No
}

public class Concern
{
    public int ConcernID { get; set; }
    public YesNo LifeExpectancy { get; set; }
    public YesNo CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public YesNo LifeExpectancy { get; set; }        
    public YesNo CollateralHistoryAvailable { get; set; }

}
为什么不确定YesNo枚举的范围,以便两者都访问同一个对象

public enum YesNo
{
    Yes,
    No
}

public class Concern
{
    public int ConcernID { get; set; }
    public YesNo LifeExpectancy { get; set; }
    public YesNo CollateralHistoryAvailable { get; set; }
}

public class PatientConcernsViewModel
{
    public int ConcernID { get; set; }

    public YesNo LifeExpectancy { get; set; }        
    public YesNo CollateralHistoryAvailable { get; set; }

}

您有两个完全不同的枚举,它们恰好在完全限定名中具有相同的项和相同的最后一个单词

正如错误所述,您有Project.Models.Concern.YesNo和Project.ViewModels.PatientConcernsViewModel.YesNo

如果您只是将枚举放在其他更合适的地方,那么两个类都可以使用它,并且您没有两种类型


虽然以上回答了您的问题,因为Aron指出,在我可以想象的几乎所有目的中,布尔值都比是/否枚举更好。

您有两个完全不同的枚举,它们恰好具有相同的项,并且在完全限定的名称中具有相同的最后一个单词

正如错误所述,您有Project.Models.Concern.YesNo和Project.ViewModels.PatientConcernsViewModel.YesNo

如果您只是将枚举放在其他更合适的地方,那么两个类都可以使用它,并且您没有两种类型


以上回答了您的问题,因为Aron指出,在我可以想象的几乎所有目的中,布尔值都比是/否枚举更好。

您的YesNo枚举缺少值FileNotFound。为什么每个类都有不同的YesNo枚举。见鬼,你为什么有一个YesNo枚举?为什么不使用bool呢?拥有两个相同的类似乎不是一个好的oo实践:将enum移出两个类都拥有的类access@Harrison他们现在都有权限了。它们是公共嵌套枚举。您的YesNo枚举缺少值FileNotFound。为什么每个类都有不同的YesNo枚举。见鬼,你为什么有一个YesNo枚举?为什么不使用bool呢?拥有两个相同的类似乎不是一个好的oo实践:将enum移出两个类都拥有的类access@Harrison他们现在都有权限了。它们是公共嵌套枚举。