草庐IT

swift - 复合开关盒 : may we have a single common value binding for compound enum cases that have the same type of associated value?

(当我准备好并几乎写完问题时,重新阅读相应的语言指南部分为我回答了这个问题,但问答可能对其他人有用,所以我还是会发布它)背景考虑以下枚举,其中包含两种不同类型的关联值之一,Int或String:enumFoo{casebar(Int)casebaz(Int)casebax(Int)casefox(String)}在switch语句中执行模式匹配时,我们可能会构造复合案例,每个案例涵盖几种可能的匹配模式(如果任何模式匹配则进入case分支):funcfoo(_foo:Foo)->Int{switchfoo{case.bar,.baz,.bax:return42case.fox:retur

ios - 如何使用 self 和 enum 在 Swift 中设置条件断点的条件?

我有一个HTTP方法的枚举:enumHTTPMethod:String{caseGET="GET"casePOST="POST"}我有一个请求类和一个请求包装类:classRequest{letmethod:HTTPMethod=.GET}classRequestWrapper{letrequest:RequestfunccompareToRequest(incomingRequest:NSURLRequest)->Bool{//Nextlineiswheretheconditionalbreakpointset.returnrequest.method.rawValue==incom

swift - 在 swift 中使用非 NS_ENUM objective-C 枚举

我正在使用wahoofitnessAPI,它定义了以下objective-C枚举:typedefenum{/**Noactiveconnection.*/WF_SENSOR_CONNECTION_STATUS_IDLE,/**Theconnectionisinprocessofbeingestablished.*/WF_SENSOR_CONNECTION_STATUS_CONNECTING,/**Thesensorconnectionisestablishedandactive.*/WF_SENSOR_CONNECTION_STATUS_CONNECTED,/**Theconnecti

swift - 开关 : Enum Switch issue : Not member of a int

我正在用Swift编写我的第一个项目(我多年来一直在使用ObjectiveC),出于某种原因,我无法弄清楚为什么我的枚举和Switch不能一起工作enumContactViewMode:Int{caseViewModeFavourite=0caseViewModeRecent=1caseViewModeContacts=2}属性@IBInspectablevarcontactViewMode:Int!切换switchcontactViewMode{caseContactViewMode.ViewModeFavourite:contacts=DBManager.getFavouriteC

ios - swift : Enum constant with type and value

我知道,枚举常量在swift中应该是这样的enumCompassPoint{caseNorthcaseSouthcaseEastcaseWest}但是如何给第一个元素赋值,如下面的Objective-C代码enumShareButtonID:NSInteger{ShareButtonIDFB=100,ShareButtonIDTwitter,ShareButtonIDGoogleplus}ShareButtonID; 最佳答案 你需要给枚举一个类型然后设置值,在下面的例子中North设置为100,其余的将是101、102等,就像在C

C# 7.3 枚举约束 : Why can't I use the enum keyword?

为了将泛型类型参数约束为枚举类型,我之前像这样约束它们,这是我在C#7.3之前的版本中为枚举约束类型T的最佳方法:voidDoSomething()whereT:struct,IComparable,IConvertible,IFormattable现在,C#7.3添加了一项新功能,可将泛型类型限制为System.Enum。我尝试将枚举约束与VS201715.7updatereleasedtoday一起使用,当我这样写时它编译成功(假设我有一个usingSystem;指令):voidDoSomething()whereT:Enum但是,使用enum关键字不起作用并导致编译器抛出以下错误

c# - 为什么 switch for enum 接受隐式转换为 0 但不接受任何其他整数?

有一个:enumSomeEnum{A=0,B=1,C=2}现在编译器允许我写:SomeEnumx=SomeEnum.A;switch(x){case0://0被认为是SomeItems.A。但我不会写:SomeEnumx=SomeEnum.A;switch(x){case0:break;case1://为什么只有0存在隐式转换? 最佳答案 来自ECMA-334(C#LanguageSpecification)13.1.3ImplicitenumerationconversionsAnimplicitenumerationconver

c# - 使用 GetHashCode 获取 Enum int 值

我有一个枚举publicenumINFLOW_SEARCH_ON{ON_ENTITY_HANDLE=0,ON_LABEL=1,ON_NODE_HANDLE=2}//enumINFLOW_SEARCH_ON我必须使用此枚举在网格列中进行搜索。获取我正在使用的列索引MyEnumVariable.GetHashCode()哪个工作正常,或者我应该使用(short)MyEnumVariable我对使用GetHashCode()有点困惑。使用有什么问题吗? 最佳答案 使用GetHashCode()是不正确的。您应该转换为int。以你的方式使用

c# - 无法将类型 'System.Enum' 转换为 int

(好吧,我就在这里揭露我的无知,请温柔点)背景我有一个看起来(有点)像这样的方法:publicvoidAddLink(EnumenumVal){stringidentifier=m_EnumInterpreter(enumVal);AddLink(identifier);}EnumInterpreter是创建父类时传入的Func。我正在使用枚举,因为在这个级别上它“不关我的事”——我不在乎它是哪个具体的枚举。调用代码仅使用(生成的)枚举来避免使用魔法字符串。问题如果EnumInterpreter发回一个空字符串,我想用enumVal的实际值抛出一个异常。我以为我只能转换为int,但编译

c# - 将 'enum' 的数组转换为 'int' 的数组

我正在尝试将Enum数组转换为int数组:publicenumTestEnum{Item1,Item2}int[]result=Array.ConvertAll(enumArray,newConverter(Convert.ToInt32));由于某些原因,Convert.ToInt32在Array.ConvertAll中使用时不起作用,因此我不得不进行一些更改:int[]result=Array.ConvertAll(enumArray,newConverter(ConvertTestEnumToInt));publicstaticintConvertTestEnumToInt(Te