草庐IT

c# - 为什么多维数组的枚举值不等于自身?

考虑:usingSystem;publicclassTest{enumState:sbyte{OK=0,BUG=-1}staticvoidMain(string[]args){vars=newState[1,1];s[0,0]=State.BUG;Statea=s[0,0];Console.WriteLine(a==s[0,0]);//False}}这怎么解释?在x86JIT中运行时,它出现在VisualStudio2015的调试版本中。发布构建或在x64JIT中运行按预期打印True。从命令行重现:cscTest.cs/platform:x86/debug(/debug:pdbonl

c# - 立即返回所有具有 yield return 的枚举;无需循环

我有以下函数来获取卡片的验证错误。我的问题与处理GetErrors有关。两种方法具有相同的返回类型IEnumerable.privatestaticIEnumerableGetErrors(Cardcard){varerrors=GetMoreErrors(card);foreach(vareinerrors)yieldreturne;//furtheryieldreturnsformorevalidationerrors}是否可以返回GetMoreErrors中的所有错误无需通过它们进行枚举? 最佳答案 这是F#支持的yield!

c# - 立即返回所有具有 yield return 的枚举;无需循环

我有以下函数来获取卡片的验证错误。我的问题与处理GetErrors有关。两种方法具有相同的返回类型IEnumerable.privatestaticIEnumerableGetErrors(Cardcard){varerrors=GetMoreErrors(card);foreach(vareinerrors)yieldreturne;//furtheryieldreturnsformorevalidationerrors}是否可以返回GetMoreErrors中的所有错误无需通过它们进行枚举? 最佳答案 这是F#支持的yield!

c# - 枚举命名约定 - 复数

尽管在C#namingconventionforenumandmatchingproperty上阅读了类似但不完全是我想要的内容,但我还是在问这个问题我发现我倾向于以复数命名枚举,然后将它们作为单数“使用”,例如:publicenumEntityTypes{Type1,Type2}publicclassSomeClass{/*somecodes*/publicEntityTypesEntityType{get;set;}}当然可以,这是我的风格,但是有人能发现这种约定的潜在问题吗?不过,我确实有一个“丑陋”的名字,其中包含“状态”一词:publicenumOrderStatuses{P

c# - 枚举命名约定 - 复数

尽管在C#namingconventionforenumandmatchingproperty上阅读了类似但不完全是我想要的内容,但我还是在问这个问题我发现我倾向于以复数命名枚举,然后将它们作为单数“使用”,例如:publicenumEntityTypes{Type1,Type2}publicclassSomeClass{/*somecodes*/publicEntityTypesEntityType{get;set;}}当然可以,这是我的风格,但是有人能发现这种约定的潜在问题吗?不过,我确实有一个“丑陋”的名字,其中包含“状态”一词:publicenumOrderStatuses{P

c# - 使用用户友好的字符串枚举 ToString

我的枚举包含以下值:privateenumPublishStatusses{NotCompleted,Completed,Error};不过,我希望能够以用户友好的方式输出这些值。我不需要能够再次从字符串转到值。 最佳答案 我使用Description来自System.ComponentModel命名空间的属性。简单地装饰枚举:privateenumPublishStatusValue{[Description("NotCompleted")]NotCompleted,Completed,Error};然后使用此代码检索它:publ

c# - 使用用户友好的字符串枚举 ToString

我的枚举包含以下值:privateenumPublishStatusses{NotCompleted,Completed,Error};不过,我希望能够以用户友好的方式输出这些值。我不需要能够再次从字符串转到值。 最佳答案 我使用Description来自System.ComponentModel命名空间的属性。简单地装饰枚举:privateenumPublishStatusValue{[Description("NotCompleted")]NotCompleted,Completed,Error};然后使用此代码检索它:publ

c# - 获取枚举值的属性

我想知道是否可以获取enum值的属性而不是enum本身的属性?例如,假设我有以下enum:usingSystem.ComponentModel;//forDescriptionAttributeenumFunkyAttributesEnum{[Description("NameWithSpaces1")]NameWithoutSpaces1,[Description("NameWithSpaces2")]NameWithoutSpaces2}我想要的是给定枚举类型,生成枚举字符串值的二元组及其描述。值(value)很简单:Arrayvalues=System.Enum.GetValue

c# - 获取枚举值的属性

我想知道是否可以获取enum值的属性而不是enum本身的属性?例如,假设我有以下enum:usingSystem.ComponentModel;//forDescriptionAttributeenumFunkyAttributesEnum{[Description("NameWithSpaces1")]NameWithoutSpaces1,[Description("NameWithSpaces2")]NameWithoutSpaces2}我想要的是给定枚举类型,生成枚举字符串值的二元组及其描述。值(value)很简单:Arrayvalues=System.Enum.GetValue

c# - 在 C# 中将字符串转换为枚举

在C#中将字符串转换为枚举值的最佳方法是什么?我有一个包含枚举值的HTML选择标记。当页面发布时,我想提取值(将以字符串的形式)并将其转换为相应的枚举值。在理想世界中,我可以做这样的事情:StatusEnumMyStatus=StatusEnum.Parse("Active");但这不是有效代码。 最佳答案 在.NETCore和.NETFramework≥4.0thereisagenericparsemethod:Enum.TryParse("Active",outStatusEnummyStatus);这还包括C#7的新内联out