假设我们有一个UI,在这个UI中我们有一个下拉菜单。此下拉列表中填充了枚举的翻译值。恭喜,我们可以按枚举的int值、枚举的名称以及枚举的翻译名称进行排序。但是如果我们想要与上述3种不同的排序方式呢?如何处理这样的需求? 最佳答案 实现你自己的IComparer:usingSystem;usingSystem.Collections.Generic;namespacetest{classProgram{enumX{one,two,three,four}classXCompare:IComparer{publicintCompare(X
当我在VisualStudio中的Enum类型上键入.ToString()时,Intellisense显示通过ToString()(虽然它构建并工作正常)。这似乎表明Enum.ToString()在某种程度上已被弃用。这是真的?如果是,为什么? 最佳答案 采用IFormatProvider的Enum.ToString重载,ToString(IFormatProvider)和ToString(String,IFormatProvider),都已过时,因为无论如何都没有使用IFormatProvider。其他重载,ToString()和
C#枚举值不仅限于其定义中列出的值,还可以存储其基类型的任何值。如果未定义基类型,则使用Int32或仅使用int。我正在开发一个WCF服务,它需要确信某些枚举已经分配了一个值,而不是所有枚举的默认值0。我从一个单元测试开始,以确定[Required]会在这里做正确的工作。usingSystem.ComponentModel.DataAnnotations;usingXunit;publicenumMyEnum{//Ialwaysstartfrom1inordertodistinctfirstvaluefromthedefaultvalueFirst=1,Second,}publiccl
我知道我可以将我的枚举放在类的命名空间区域,这样每个人都可以在同一个命名空间中访问它。//definedinclass2publicenumMode{Selected,New,}我想要的是从访问这个枚举publicclass1{varclass2=newclass2();//SettheModeclass2.Mode=Model.Selected}如果不使用命名空间区域,这在某种程度上是可能的吗? 最佳答案 您可以在类之外声明一个枚举:namespaceMyNamespace{publicenumMyEnum{Entry1,Entr
你能帮我修改这段代码吗usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Reflection;namespaceNTSoftHRM{//------------------------------------------------------------------------publicclassEnumValueList:IEnumerable{//--------------------------------------------------------------
假设我有一个变量,其值(例如,"listMovie")是一个enum成员的名称:publicenumMovies{regMovie=1,listMovie=2//memberwhosevalueIwant}在这个例子中,我想得到值2。这可能吗?这是我尝试过的:publicstaticvoidgetMoviedata(stringKeyVal){if(Enum.IsDefined(typeof(TestAppAreana.MovieList.Movies),KeyVal)){//Canprintthenamebutnotvalue((TestAppAreana.MovieList.Mov
有没有办法在名称中使用连字符“-”的枚举条目,例如:enummyEnum{ok,not-ok,}我看到了关于enumshavingfriendlynames的问题但是,如果我可以直接使用连字符,它会节省我一些工作。更新:我想使用连字符的原因是它可以很容易地将枚举用于我无法控制的设置值列表,例如:rejectedreplacedlocal-byeremote-bye 最佳答案 不,不允许使用连字符。Identifiers您显然可以用下划线替换连字符,但正如@benPearce所建议的,CamelCase将是更好的选择,并且符合大多数C
尝试获取作为字符串返回的枚举的基础整数值。尝试过return((int)MyEnumValue).ToString;但是失败了错误1无法将方法组“ToString”转换为非委托(delegate)类型“string”。您是否打算调用该方法? 最佳答案 少括号的选项是:returnMyEnumValue.ToString("d"); 关于c#-将枚举底层整数值转换为字符串,我们在StackOverflow上找到一个类似的问题: https://stackov
我对枚举有疑问我需要在基类或接口(interface)中创建一个枚举(但为空)classBase{publicenumTest;//???}然后在一些父类中进行不同的枚举classParent1{publicenumTest{A,B,C};}classParent2{publicenumTest{J,H,K};}现在当我必须使用枚举时,我有下一节有方法的课classTest{publicvoidFoo(Testenum){intvalue=(int)enum;//...}}有什么办法可以做到这一点吗?如果不是,我必须在每个类中使用静态整数...classParent1{publicst
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在尝试找出具有多个结果值的方法的优点和缺点。例如,我正在使用登录方法。如果登录成功,则通过,否则我需要知道为什么失败。1。返回true或false(信息不足)boolLogin(stringuser,stringpassword);2。如果成功则返回true,否则抛出异常publicclassUnknownUserException:Exception{}publicclassWron