草庐IT

c# - 自使用 .Net 4.0 以来 visual studio Release模式中的 InvalidOperationException

我在将现有的.NET3.5应用程序移植到.NET4.0时遇到了一些问题。代码不是我自己写的,所以我不知道为什么会这样。情况是这样的:如果应用程序是从VisualStudio启动的(发布或Debug模式无关紧要),并且如果应用程序是从调试文件夹启动的,代码也能正常工作问题是发布部署,因为自4.0(以及4.5)以来它不能正常工作:-/这是初始调用:someObject.Text=Elements.GetElement(Int16.Parse(cb1.Text));代码如下:publicclassElements:EnumBase{publicstaticreadonlyElementsEl

c# - 如何测试按位枚举是否包含 C# 中另一个按位枚举的任何值?

例如。我有以下枚举[Flags]publicenumStuff{stuff1=1,stuff2=2,stuff3=4,stuff4=8}所以我将mystuff设置为mystuff=Stuff.stuff1|Stuff.stuff2;然后我将他的东西设置为hisstuff=Stuff.stuff2|Stuff.stuff3;我现在如何测试这些重叠-即hisstuff和mystuff都包含至少一个相同的枚举值?还有,如果有多种方法,哪种方法最有效?(这是一个游戏) 最佳答案 简单:if((x&y)!=0){...}这执行按位“与”,然后

c# - 如何测试按位枚举是否包含 C# 中另一个按位枚举的任何值?

例如。我有以下枚举[Flags]publicenumStuff{stuff1=1,stuff2=2,stuff3=4,stuff4=8}所以我将mystuff设置为mystuff=Stuff.stuff1|Stuff.stuff2;然后我将他的东西设置为hisstuff=Stuff.stuff2|Stuff.stuff3;我现在如何测试这些重叠-即hisstuff和mystuff都包含至少一个相同的枚举值?还有,如果有多种方法,哪种方法最有效?(这是一个游戏) 最佳答案 简单:if((x&y)!=0){...}这执行按位“与”,然后

C# 枚举数组接受错误值

这个问题在这里已经有了答案:WhydoescastinginttoinvalidenumvalueNOTthrowexception?(4个答案)关闭8年前。我正在开发一种Web服务方法,该方法将接收一个整数数组作为参数,然后,在该方法中,我将数组中的值转换为枚举值,并将它们存储在枚举列表中。但是,当传递一个不在枚举中的值时,它会毫无问题地添加到枚举列表中。没有InvalidCastException,什么都没有。我做了一个看起来像这样的测试项目:staticclassProgram{staticvoidMain(string[]args){Listvalues=newList(){T

C# 枚举数组接受错误值

这个问题在这里已经有了答案:WhydoescastinginttoinvalidenumvalueNOTthrowexception?(4个答案)关闭8年前。我正在开发一种Web服务方法,该方法将接收一个整数数组作为参数,然后,在该方法中,我将数组中的值转换为枚举值,并将它们存储在枚举列表中。但是,当传递一个不在枚举中的值时,它会毫无问题地添加到枚举列表中。没有InvalidCastException,什么都没有。我做了一个看起来像这样的测试项目:staticclassProgram{staticvoidMain(string[]args){Listvalues=newList(){T

c# - 获取枚举标志所有位的最佳方法?

我有一个带有Flags属性的枚举。我的问题是,我想获得所有选项的整数位掩码,而无需自己手动组合所有位。我想这样做是为了与其他一些int字段进行比较,并且我想保护以防将来的开发人员向枚举添加更多位选项。另一件事是我的枚举标志中的位将全部手动分配,因此我不能简单地获取下一个值并减去1。 最佳答案 如果我正确理解了您的要求,那么这应该对您有用:Enum.GetValues(typeof(Enum)).Cast().Sum();然后您可以将其转换回您的typeof(Enum):[Flags]publicenumValues{Value_1=

c# - 获取枚举标志所有位的最佳方法?

我有一个带有Flags属性的枚举。我的问题是,我想获得所有选项的整数位掩码,而无需自己手动组合所有位。我想这样做是为了与其他一些int字段进行比较,并且我想保护以防将来的开发人员向枚举添加更多位选项。另一件事是我的枚举标志中的位将全部手动分配,因此我不能简单地获取下一个值并减去1。 最佳答案 如果我正确理解了您的要求,那么这应该对您有用:Enum.GetValues(typeof(Enum)).Cast().Sum();然后您可以将其转换回您的typeof(Enum):[Flags]publicenumValues{Value_1=

c# - 如何为枚举提供用户友好的名称?

这个问题在这里已经有了答案:StringrepresentationofanEnum(37个答案)Localizingenumdescriptionsattributes(8个答案)关闭9年前。我有一个像这样的枚举EnumComplexity{NotSoComplex,LittleComplex,Complex,VeryComplex}我想在下拉列表中使用它,但不想在列表中看到这样的Camel名称(对用户来说看起来很奇怪)。相反,我想用正常的措辞,比如没那么复杂小复杂(等)另外,我的应用程序是多语言的,我希望能够显示这些本地化的字符串,我使用了一个助手TranslationHelper

c# - 如何为枚举提供用户友好的名称?

这个问题在这里已经有了答案:StringrepresentationofanEnum(37个答案)Localizingenumdescriptionsattributes(8个答案)关闭9年前。我有一个像这样的枚举EnumComplexity{NotSoComplex,LittleComplex,Complex,VeryComplex}我想在下拉列表中使用它,但不想在列表中看到这样的Camel名称(对用户来说看起来很奇怪)。相反,我想用正常的措辞,比如没那么复杂小复杂(等)另外,我的应用程序是多语言的,我希望能够显示这些本地化的字符串,我使用了一个助手TranslationHelper

c# - 将 C# 枚举定义序列化为 Json

在C#中给出以下内容:[Flags]publicenumMyFlags{None=0,First=1ServiceStack.Text中是否有任何现有方法可序列化为以下JSON?{"MyFlags":{"None":0,"First":1,"Second":2,"Third":4,"Fourth":8}}目前我正在使用下面的例程,有更好的方法吗?publicstaticstringToJson(thisTypetype){varstringBuilder=newStringBuilder();Arrayvalues=Enum.GetValues(type);stringBuilder.