草庐IT

GL_INVALID_ENUM

全部标签

c# - Array 类和 Enum.GetValues() 的简单形式

我正在使用静态方法Enum.GetValues(typeof(SomeEnum));当您需要做的只是枚举值时,此方法非常有用,但出于某种原因,它返回一个非常简单的Array类形式。我正在尝试找到一种简单的方法将其返回值转换为更“正常”的集合类,例如常规数组或List。到目前为止,如果我想这样做,我必须枚举Enum.GetValues(typeof(SomeEnum));的输出。并将它们一一添加到列表。有什么想法可以更干净地做到这一点吗?答案:关键是对返回结果进行强制转换--SomeEnum[]enums=(SomeEnum[])Enum.GetValues(typeof(SomeEnu

c# - : Dictionary<string, object> 或 Dictionary<enum,object> 哪个更快/更有效?

enum类型用作字典键时是否比string类型更快/更有效?IDictionaryorIDictionary事实上,哪种数据类型最适合作为字典键,为什么?请考虑以下事项:注意:为简单起见,只有5个属性structMyKeys{publicstringIncomplete="IN";publicstringSubmitted="SU";publicstringProcessing="PR";publicstringCompleted="CO";publicstringClosed="CL";}和enumMyKeys{Incomplete,Submitted,Processing,Comp

c# - Json Serialize Dictionary<Enum, Int32> 的问题

每当我尝试序列化字典时,我都会得到异常:System.ArgumentException:Type'System.Collections.Generic.Dictionary`2[[Foo.DictionarySerializationTest+TestEnum,Foo,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null],[System.Int32,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]]'isnotsupportedfors

c# - SQL 服务器 : invalid object name in query execution

我正在尝试执行Insert语句,但一直收到Invalidobjectname错误。这是我的代码:publicstringaddNewComment(intuserID,intpageID,stringtitle,stringcomment){stringquery="INSERTINTOdbo.nokernok_kommentarer(userID,pageID,commentTitle,comment)"+"VALUES("+userID+","+pageID+",'"+title+"','"+comment+"')";adapter.InsertCommand=newSqlComm

c# - XML 异常 : Invalid Character(s)

我正在开发一个小项目,该项目从一个长期运行的应用程序接收字符串形式的XML数据。我正在尝试将此字符串数据加载到XDocument(System.Xml.Linq.XDocument)中,然后从那里执行一些XMLMagic并为报告数据。有时,我收到包含无效XML字符的数据,并且在尝试将字符串解析为XDocument时,我收到此错误。[System.Xml.XmlException]Message:'?',hexadecimalvalue0x1C,isaninvalidcharacter.由于我无法控制远程应用程序,因此您可以期待任何类型的字符。我很清楚XML有一种方法可以将字符放入其中,

c# - "or"应该与 .Net4 Hasflags 一起工作 : enum. HasFlag(AccessRights.Read | AccessRights.Write)

我正在尝试新的HasFlags功能,并想知道以下应该工作:enum.HasFlag(AccessRights.Read|AccessRights.Write)...因为好像没有...DBAccessRightsrights=(DBAccessRights)permission.PermissionFlags;if(rights.HasFlag(DBAccessRights.WikiMode)){//works}if(rights.HasFlag(DBAccessRights.WikiMode|DBAccessRights.CreateNew)){//Doesn'twork}DBAcce

c# - Switch + Enum = 不是所有的代码路径都有返回值

我很好奇为什么这段代码...enumTile{Empty,White,Black};privatestringTileToString(Tilet){switch(t){caseTile.Empty:return".";caseTile.White:return"W";caseTile.Black:return"B";}}抛出该错误。t不可能取任何其他值,是吗?编译器不应该足够聪明来解决这个问题吗? 最佳答案 不,您可以使用任何转换为​​Tile的int值。试试这个:Tilet=(Tile)5;strings=TileToStrin

c# - 将 Enum 指定为 uint 的原因是什么?

我遇到了一些继承了uint的枚举器。我不明白为什么有人会这样做。例子:EnummyEnum:uint{...}有人会这样做的任何优势或具体原因?为什么不将其保留为defaultint? 最佳答案 如果枚举值大于2,147,483,647且非负。 关于c#-将Enum指定为uint的原因是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/413397/

c# - 始终返回 IdentityServer "invalid_client"错误

我正在尝试使用IdentityServer3,但不知道为什么我总是收到“invalid_client”错误,无论我做什么。这是我正在使用的代码://Startup.cs(Authc#project)publicvoidConfiguration(IAppBuilderapp){varinMemoryManager=newInMemoryManager();varfactory=newIdentityServerServiceFactory().UseInMemoryClients(inMemoryManager.GetClients()).UseInMemoryScopes(inMem

c# - 将 Enumerable.ToDictionary 与扩展方法一起使用时为 "CLR detected an Invalid Program"

一位同事向我传递了一个有趣的代码示例,该示例在运行时因InvalidProgramException(“CLR检测到无效程序”)而崩溃。这个问题似乎发生在JIT时间,因为它编译得很好,但就在调用带有“违规”行的方法之前抛出异常-我猜是因为它正在被JIT。有问题的行是调用Enumerable.ToDictionary并将Func作为第二个参数传递。如果Func参数完全用lambda指定,它就可以工作;如果指定为方法组,如果失败。这两者一定是等价的吧?这让我(以及发现它的同事!)感到难过-这看起来确实像是一个JIT错误。[编辑:抱歉-我在代码示例中以错误的方式得到了通过和失败的情况-现在已