草庐IT

swift - OptionSetType 和枚举

全部标签

C#:将一个枚举包装在另一个枚举中(即镜像另一个枚举/复制它......)

这是我的问题:我有一个引用DLL的对象。我希望其他对象引用我的对象,而不必同时包含对DLL本身的引用。除了我想复制的DLL中有一个枚举外,这在大多数情况下都很好。我可以逐行写出枚举,但我想知道是否有更好的方法来做到这一点。即。假设DLL有以下枚举:publicenumdllEnum{value1,value2,value3}我可以做以下事情:publicenummyEnum{value1,value2,value3}或者更好:publicenummyEnum{value1=dllEnum.value1,value2=dllEnum.value2,value3=dllEnum.value

c# - 使用枚举类保持枚举到对象的映射?

我经常需要枚举和另一个对象(本例中为字符串)之间的全局硬编码映射。我想将枚举和映射定义放在一起以阐明维护。如您所见,在此示例中,创建了一个带有一个静态字段的令人讨厌的类。publicenumEmailTemplates{//Remembertoeditthecorrespondingmappingsingleton!WelcomeEmail,ConfirmEmail}publicclassKnownTemplates{publicstaticDictionaryKnownTemplates;staticKnownTemplates(){KnownTemplates.Add(EmailT

c# - WPF 如何将带有描述的枚举绑定(bind)到 ComboBox

如何将具有Description(DescriptionAttribute)的enum绑定(bind)到ComboBox?我有一个枚举:publicenumReportTemplate{[Description("Topview")]TopView,[Description("Sectionview")]SectionView}我试过这个:无法成功,有什么简单的解决办法吗?提前致谢! 最佳答案 这可以通过为您的组合框使用转换器和项目模板来完成。这是转换器代码,绑定(bind)到枚举时将返回描述值:namespaceFirmwareU

c# - 在 C# 中使用反射创建具有字符串值的未知枚举实例

当我在运行时拥有枚举的System.Type并检查了BaseType是否为System.Enum时,我在计算如何准确创建枚举实例时遇到了问题,我的值是一个与项目匹配的int值在神秘的枚举中。到目前为止,我的代码只是上面描述的逻辑,如下所示。if(Type.GetType(type)!=null){if(Type.GetType(type).BaseType.ToString()=="System.Enum"){return???;}}在过去使用枚举时,我总是在代码时知道我正在尝试解析哪个枚举,但在这种情况下我很困惑,并且运气不好以谷歌友好的方式阐明我的问题......我通常会这样做像(

c# - 如何使用自定义顺序属性对枚举进行排序?

我有一个这样的枚举:enumMyEnum{[Order(1)]ElementA=1,[Order(0)]ElementB=2,[Order(2)]ElementC=3}我想列出它的元素,按我编写的自定义顺序属性排序,以便我得到一个排序的项目列表。我正在获取描述属性,但只是针对这样一个元素:FieldInfofi=value.GetType().GetField(value.ToString());DescriptionAttribute[]attributes=(DescriptionAttribute[])fi.GetCustomAttributes(typeof(Descripti

c# - 将枚举属性数据绑定(bind)到网格并显示描述

这是与HowtobindacustomEnumdescriptiontoaDataGrid类似的问题,但就我而言,我有多个属性。publicenumExpectationResult{[Description("-")]NoExpectation,[Description("Passed")]Pass,[Description("FAILED")]Fail}publicclassTestResult{publicstringTestDescription{get;set;}publicExpectationResultRequiredExpectationResult{get;set;

c# - 在 C# 中的运行时设置枚举值

有什么方法可以在运行时更改enum值?例如我有以下类型enumMyType{TypeOne,//=5atruntimeTypeTwo//=3atruntime}我想在运行时将5设置为TypeOne,将3设置为TypeTwo。 最佳答案 正如其他人所指出的,答案是否定的。但是您可以重构您的代码以改用类:publicsealedclassMyType{publicintTypeOne{get;set;}publicintTypeTwo{get;set;}}...varmyType=newMyType{TypeOne=5,TypeTwo=

c# - 我可以将枚举传递给 Controller ​​以便模型绑定(bind)器绑定(bind)它吗?

如果是这样,我应该如何传递参数?匹配枚举名称的字符串可以吗?如果我要传递匹配枚举项的下拉框,这会很方便。使用thisanswer中提供的解决方案会很有用如果我在提交回数据时可以轻松地绑定(bind)到枚举。 最佳答案 是的,当有这样的Controller时:enumMyAction{Lalala}publicActionResultIndex(MyActionaction){...}您只需执行Index/Lalala,一切正常。如果您需要更复杂的绑定(bind)(比如将某个字符串值映射到一个复杂的类),请使用类似StructureM

c# - 具有重复值的枚举的 GetName

如果我在C#枚举中有重复值,说enumMyE{value1=1,value2=2,valued=1}以下字符串的值应该是什么?MyEN=(MyE)1;stringV1=N.ToString();stringV2=GetName(MyE,1);V1和V2必须包含相同的值是真的吗?这些值应该是什么?我没有在MSDN或这里找到任何关于重复枚举的“解引用”,如果我错过了,请给我指向一个链接。 最佳答案 实验表明:V1="value1"和V2="value1"但是,这并不能保证。MSDNpageonEnum.GetName状态:Ifmulti

c# - 我应该将枚举 ID/值存储在数据库中还是 C# 枚举中?

假设我的数据库表有UserType、SalesType等列我应该拥有包含UserTypeID、userTypeName的数据库表还是应该只创建一个C#枚举? 最佳答案 两者有什么问题?如果值是用户定义的或不断变化的,enum肯定不适合。如果值严格不变(例如性别),您可以将它们作为enums以便于在应用程序中引用,也可以在数据库中作为单独的表来强制执行外键和作为一个引用。 关于c#-我应该将枚举ID/值存储在数据库中还是C#枚举中?,我们在StackOverflow上找到一个类似的问题: