当前位置: 首页 > 编程语言 > C#

如何向枚举添加.Equals()扩展?Share

时间:2023-04-10 13:39:09 C#

如何给枚举添加.Equals()扩展名?我目前有以下代码:publicenumFieldType{Int,Year,String,DateTime}publicenumDataType{Int,String,DateTime}年;数据类型dType=DataType.Int;fType.Equals(dType);//如果fType是一个Int/Year,并且dType是一个Int,它应该返回truedType.Equals(fType);//如果dType是一个Int,而fType是一个Int/Year,它应该是true有没有办法创建一个.Equals扩展,这样它就可以工作?正如Jon所说,重用框架的方法名称不是一个好主意。但是你可以很容易地做这样的事情:}publicstaticboolIsEquivalentTo(thisDataTypedata,FieldTypefield){returndata.ToString()==field.ToString();}}甚至更好:publicstaticclassExtensions{publicstaticboolIsEquivalentTo(thisEnume1,Enume2){returne1.ToString()==e2.ToString();然后你可以这样写:publicstaticclassExtensions{publicstaticboolEquals(thisFieldTypefield,DataTypedata){returndata.Equals(field);}publicstaticboolEquals(thisDataTypedata,FieldTypefield){//Insertlogichere}}我不确定我会...因为你重载object.Equals的方式不一致。所以如果有人写:objectfield=FieldType.Int;Console.WriteLine(field.Equals(DataType.Int));将打印False因为它将使用object.Equals而不是扩展方法。以上就是C#学习教程:如何给枚举添加.Equals()扩展?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: