草庐IT

my_enum_e

全部标签

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

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

c# - 业务应用程序 : Will F# make my life easy?

我主要开发业务线应用程序。没有科学操作。没有复杂的计算。只需将用户界面绑定(bind)到数据库。我使用线程的唯一原因是在后台做一些工作并仍然保持UI响应。这可能不是最好的方法,但这是我遵循的方法1.首先创建一个工作应用程序(无线程)并将其提供给最终用户以进行反馈。2.一旦所有需求都被锁定,我会尝试在任何对提高性能有意义的地方使用线程。步骤1和2的代码截然不同,线程代码主导了实际代码。1.对于业务线应用程序,F#会让我的生活更轻松吗?2.是否有任何特定的UI技术最适合F#?我主要从事ASP.NET和Silverlight方面的工作。时不时地使用WPF。3.是否有使用F#的业务线应用程序/

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

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

既然我们有了枚举约束,为什么编译器不允许我编写这段代码?publicstaticTResult?ToEnum(thisStringvalue,TResult?defaultValue)whereTResult:Enum{returnString.IsNullOrEmpty(value)?defaultValue:(TResult?)Enum.Parse(typeof(TResult),value);}编译器说:ErrorCS0453Thetype'TResult'mustbeanon-nullablevaluetypeinordertouseitasparameter'T'intheg

c# - C# 中 Enum.Parse 的通用版本

我经常想知道为什么C#还没有实现通用Enum.Parse假设我有enumMyEnum{Value1,Value2}我希望从一个XML文件/数据库条目创建一个枚举。MyEnumval=(MyEnum)Enum.Parse(typeof(MyEnum),"value1",true);难道不能像这样实现吗MyEnumcal=Enum.Parse("value1");这似乎是一个小问题,但它似乎是一个被忽视的问题。有什么想法吗? 最佳答案 它已经在.NET4中实现了;)看看here.MyEnumcal;if(!Enum.TryParse("

c# - 在不声明所有可能的组合的情况下打开 Enum(带有 Flags 属性)?

我如何打开一个设置了flags属性(或更准确地说用于位操作)的枚举?我希望能够在与声明的值相匹配的开关中命中所有情况。问题是如果我有以下枚举[Flags()]publicenumCheckType{Form=1,QueryString=2,TempData=4,}我想使用这样的开关switch(theCheckType){caseCheckType.Form:DoSomething(/*Sometypeofcollectionispassed*/);break;caseCheckType.QueryString:DoSomethingElse(/*Someothertypeofcoll

c# - Enum.TryParse 对任何数值返回 true

我遇到了使用Enum.TryParse时未预料到的行为。如果我有一个枚举:publicenumMyEnum{ValueA,ValueB,ValueC}然后我将数值(作为字符串)传递给Enum.TryParse,例如:MyEnumoutputEnum;boolresult=Enum.TryParse("1234",outoutputEnum);尽管字符串“1234”不是一个可能的值,结果将返回为真,我的outputEnum的值为1234。有什么办法可以避免这种行为?我正在尝试编写一个将任意字符串输入作为枚举处理的函数,这在我的错误输入检测中引发了一些麻烦。 最

c# - Enum.GetValues() 返回类型

我已阅读说明“给定枚举类型,System.Enum的GetValues()方法将返回给定枚举基本类型的数组”的文档,即int、byte等。但是,我一直在使用GetValues()方法,而我一直返回的只是一个枚举类型的数组。我错过了什么吗?publicenumResponse{Yes=1,No=2,Maybe=3}foreach(varvalueinEnum.GetValues(typeof(Response))){vartype=value.GetType();//typeisalwaysoftypeEnumnotoftheenumbasetype} 最佳答

c# - Enum.Parse(),肯定是一种更简洁的方法?

假设我有一个枚举,publicenumColours{Red,Blue}我能看到的解析它们的唯一方法是做类似的事情:stringcolour="Green";varcol=(Colours)Enum.Parse(typeOf(Colours),colour);这将抛出System.ArgumentException因为“Green”不是Colours枚举的成员。现在我真的很讨厌在try/catch中包装代码,有没有比我迭代每个Colours枚举,并与进行字符串比较的更简洁的方法呢?颜色? 最佳答案 使用Enum.IsDefined(

networking - docker : How to find the network my container is in?

我想了解一些关于Docker的事情:如何找到我的容器所在的网络?我可以动态分离我的容器并附加到其他网络吗?怎么样?如果我有两个容器正在运行,如何检查这两个容器是否在同一个网络?我可以ping另一个吗? 最佳答案 要查看您的容器所在的网络,假设您的容器名为c1:$dockerinspectc1-f"{{json.NetworkSettings.Networks}}"断开您的容器与第一个网络的连接(假设您的第一个网络称为test-net):$dockernetworkdisconnecttest-netc1然后将其重新连接到另一个网络(