草庐IT

is_enum_class

全部标签

c# - Enum ToString 显示为数字

我有一个枚举privateenumTimeUnit{Day,Month,Year}我正在用以下内容填充描述:returnstring.Concat(unit,"(s)");其中单位是TimeUnit。大多数情况下,这工作正常并显示“天数”,但在特定服务器上它显示为“1(s)”什么会导致这种情况? 最佳答案 尝试使用Enum.GetName()它还有一个优点是safer因为它需要:您传入的值不为空。您传入的值属于枚举实际可以用作其基础类型的类型,或者属于枚举本身的类型。它对值使用GetType来检查这一点。

C# Enum.TryParse 解析无效数字字符串

C#.NET4.5,Windows10,我有以下枚举:privateenumEnums{A=1,B=2,C=3}这个程序的行为非常奇怪:publicstaticvoidMain(){Enumse;if(Enum.TryParse("12",oute)){Console.WriteLine("Parsed{0}",e);}else{Console.Write("Notparsed");}Console.ReadLine();}我希望TryParse方法的结果为假,但令我惊讶的是控制台显示“Parsed12”。在Watch窗口中甚至显示值为“12”,并且是Enums类型!对于我尝试过的任何

c# - PropertyChanged 事件测试 : is this a good way?

我正在使用MVVM模式开发WPF应用程序。我的ViewModel代码如下:publicboolEditModeEnabled{get{return_EditModeEnabled;}set{_ModeEditModeEnabled=value;OnPropertyChanged("EditModeEnabled");OnPropertyChanged("CommentTextBoxVisibility");}}OnPropertyChanged是基类的虚方法,它只是引发PropertyChanged事件。我想测试PropertyChanged事件引发和我的测试方法:publicvoid

c# - Xamarin.iOS ARKit 演示项目错误 : “32-bit architectures are not supported when deployment target is 11 or later"

从https://developer.xamarin.com/samples/monotouch/ios11/ARKitSample/部署ARKit示例项目时,我收到构建错误Invalidarchitecture:ARMv7。当部署目标为11或更高版本时,不支持32位架构。所有与部署设备和我的开发机器一起检查:我在部署设备上运行iOS11(iPhone6SPlus-ARKit不会在模拟器中运行),并且安装了Xcode9(并且在启动VisualStudioforMac之前启动过一次)。VisualStudioforMac也已更新到最新的稳定版本(ARKit目前在Alpha和Beta版本中

c# - 为什么受 'Enum' 约束的泛型类型在 C# 7.3 中不符合 'struct' 的条件?

如果我有一个带有struct约束的通用接口(interface),如下所示:publicinterfaceIStructwhereT:struct{}我可以像这样提供一个枚举作为我的类型T,因为enum满足struct约束:publicclassEnumIsAStruct:IStruct{}C#7.3添加了一个Enumconstraint.以下代码以前是非法的,现在可以编译:publicclassMCVE:IStructwhereT:struct,Enum{}然而,令我惊讶的是,以下代码无法编译:publicclassMCVE:IStructwhereT:Enum{}...有错误CS0

c# - 打开SqlConnection "Handle is invalid"错误

此错误已开始偶尔且莫名其妙地发生,尤其是在连接到我们的session状态数据库时。这是错误:Exceptiontype:COMExceptionExceptionmessage:Thehandleisinvalid.(ExceptionfromHRESULT:0x80070006(E_HANDLE))atSystem.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32errorCode,IntPtrerrorInfo)atSystem.Data.ProviderBase.DbConnectionPool.T

c# - 玻璃映射器 : InferType is ignored when querying the SitecoreContext

我已经在我的Sitecore7.1解决方案上安装了Glass.Mapper.Sc.CaSTLeWindsor版本3.1.2.11包,并尝试使用推断类型。我有以下类(class):[SitecoreType]publicclassServiceConfiguration{[SitecoreField(FieldName="ServiceId")]publicvirtualstringServiceId{get;set;}}[SitecoreType(TemplateId="{26512C19-8D30-4A1E-A2CD-3BA89AF70E71}")]publicclassJavasc

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

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

c# - 为什么 <enum> 的集合无法转换为 <int?>?

为什么enum的集合无法转换为int?enumTest{A=1,B=2};int?x=(int?)Test.A;//Validvarcollection1=new[]{Test.A}.Cast().ToList();//InvalidCastExceptionhasthrown(Specifiedcastisnotvalid.)varcollection2=new[]{Test.A}.Cast().ToList(); 最佳答案 Cast方法只能进行装箱/拆箱转换、引用转换以及枚举类型与其基础整数类型之间的转换。不过,拆箱必须是正确的

c# - 对不一致的行结尾说"is"?

我正在Unity中构建游戏,我使用VisualStudio2013作为我的默认IDE。每当我创建一个文件时,它都会询问我是否要规范化行尾,因为行尾不一致(详情请参见:WhatdoesVisualStudiomeanbynormalizeinconsistentlineendings?)。我应该说是还是否?我最好的猜测是,如果我说"is",它会清除Windows不关心的Mac和Linux内容,因此它只会在Windows上运行。我对选择“否”的最佳猜测是,它会让代码在所有三个平台上运行,不会影响其他两个平台。这是正确的吗? 最佳答案 在