草庐IT

swift - OptionSetType 和枚举

全部标签

C# 将标志枚举类型变量中的设置标志转换为整数数组

我想出了这段代码,它转换类型为FlagEnumeration的变量中的设置标志,并将设置标志作为整数返回。我想知道这是否是最佳方法。示例枚举:[Flags]enumStatus{None=0x0,Active=0x1,Inactive=0x2,Canceled=0x4,Suspended=0x8}将设置标志转换为我想出的int数组的扩展方法:publicstaticclassExtensions{publicstaticint[]ToIntArray(thisSystem.Enumo){returno.ToString().Split(newstring[]{","},StringSp

c# - 具有静态成员的枚举与常量/类?

我有一组特定于应用程序的代码(代码与其名称的一对一映射),并且我一直在C#中使用枚举来表示它们。我现在不确定是否有必要这样做。这些值永远不会改变,并且它们将始终与这些标签相关联:Workflow_Status_Complete=1Workflow_Status_Stalled=2Workflow_Status_Progress=3Workflow_Status_Complete=4Workflow_Status_Fail=5我应该使用枚举还是带有静态成员的类? 最佳答案 对我来说,int类型的静态成员似乎不如枚举。你失去了枚举的类型

c# - 为什么可以只使用别名来声明枚举而不是 .NET 类型?

这很完美..publicenumNodeType:byte{Search,Analysis,Output,Input,Audio,Movement}这会返回编译器错误...publicenumNodeType:Byte{Search,Analysis,Output,Input,Audio,Movement}使用反射时也会发生同样的情况...那么,有人知道为什么enum-base只是一个整型吗? 最佳答案 可能它只是一个不完整的编译器实现(虽然有记录)。从技术上讲,这也应该有效,但事实并非如此。usingx=System.Byte;p

c# - 使用 .NET 的 CodeDom 创建枚举

我想使用CodeDomAPI创建枚举。我在Internet上进行了足够多的搜索,但得到的结果几乎没有任何用处。我要生成的是publicenumbug_tracker_type{[Description("Bugzilla")]Bugzilla,[Description("Debbugs")]Debbugs,[Description("PHPProjectBugtracker")]PHP_Project_Bugtracker,[Description("GoogleCode")]Google_Code}我使用了CodeTypeDeclaration并将它的IsEnum属性设置为true,

c# - 使用 Linq-to-sql 在 sql-server 中存储枚举

如何使用linq-to-sql在sql-server中存储枚举?我最终在我的代码中进行了大量的int转换。一定有更好的方法。我错过了什么?sqlItem.enumValue=(int)myEnumValue;...myEnumValue=(MyEnumType)sqlItem.enumValueSQLServer或LINQ在数据库中将值存储为字符串还是整数并不重要,我只是想避免所有这些散布在我的代码中的类型转换。是否可以通过我的linq-to-sql-classes的扩展方法来解决?如果可以,那会是什么样子? 最佳答案 您可以在DB

c# - 解析为可空枚举

我正在尝试将字符串解析回MyEnum类型的可为null的属性。publicMyEnum?MyEnumProperty{get;set;}我在线上遇到错误:Enumresult=Enum.Parse(t,"One")asEnum;//TypeprovidedmustbeanEnum.Parametername:enumType我在下面有一个示例控制台测试。如果我删除属性MyEntity.MyEnumProperty上的nullable,则代码有效。除了通过反射,我如何在不知道typeOf枚举的情况下让代码工作?staticvoidMain(string[]args){MyEntitye=

c# - 枚举类

我正在寻找关于如何创建类枚举类的最佳实践,而不是数字包含字符串值。像这样:publicstaticclassCustomerType{publicstaticstringType1="CustomerType1";publicstaticstringType2="CustomerType2";}我会在整个应用程序中使用此类作为我需要CustomerType的所有情况的值。我不能使用枚举,因为这是遗留系统,像这样的值在任何地方都是硬编码的,我只是想将它们集中在一个地方。问题是,在上面的例子中,我应该使用它来声明一个变量吗:静态只读关键字常量关键字或只是静态的设置这些类别和值的最佳做法是什

c# - 为什么负枚举成员最后被 foreach 枚举?

在C#中,如果我们定义一个enum,其中包含一个对应于负值的成员,然后我们迭代该enum的值,则负值不会先来,但最后。为什么会这样?在其他语言(C、C++、Ada等)中,遍历enum将为您提供定义它的顺序。MSDN有一个很好的exampleofthisbehavior:usingSystem;enumSignMagnitude{Negative=-1,Zero=0,Positive=1};publicclassExample{publicstaticvoidMain(){foreach(varvalueinEnum.GetValues(typeof(SignMagnitude))){C

c# - C# 3.0 中 "special class"枚举的泛型类型约束是否有解决方法?

这个问题在这里已经有了答案:Anyoneknowagoodworkaroundforthelackofanenumgenericconstraint?(12个答案)关闭9年前。Update:SeethebottomofthisquestionforaC#workaround.你好,考虑以下扩展方法:publicstaticboolHasFlags(thisTvalue,Tflags)whereT:System.Enum{//...}如您所知,这将在编译时抛出错误,因为通常不允许类从System.Enum继承。问题在于使用enum关键字指定的任何枚举实际上都继承自System.Enum,

c# - 以字节为单位的枚举大小

下面枚举的字节大小是多少?publicenumMMTPCnxNckRsn{MMTPCnxNckRsnNoAnswer=-2,MMTPCnxNckRsnSendError=-1,MMTPCnxNckRsnOk=0,MMTPCnxNckRsnInvalidMember=1,MMTPCnxNckRsnHubNotReady=2,MMTPCnxNckRsnUnknownMember=3,MMTPCnxNckRsnLastCnxTooRecent=4,MMTPCnxNckRsnInvalidVersion=5,MMTPCnxNckRsnInvalidOptions=6,MMTPCnxNckRsn