Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重载枚举运算符C#和Silverlight_C#_Operator Overloading - Fatal编程技术网

重载枚举运算符C#和Silverlight

重载枚举运算符C#和Silverlight,c#,operator-overloading,C#,Operator Overloading,只是一个学术问题: 在比较Enum和int时是否可以避免int强制转换 int i = 0; if(i == (int)MyEnum.Whatever) { } 我希望以如下方式重载==运算符: public static MyEnum operator ==(int lhs, MyEnum rhs) {} 感谢阅读;-) 你不能。看见正如那个问题中所建议的,您可以定义一个扩展方法来进行比较,以消除重复的强制转换。不,不可能。问题是-为什么要与in进行比较?我看到了这个问题,但问题中的Ch

只是一个学术问题: 在比较Enum和int时是否可以避免int强制转换

int i = 0;
if(i == (int)MyEnum.Whatever)
{
} 
我希望以如下方式重载==运算符:

public static MyEnum operator ==(int lhs, MyEnum rhs)
{}

感谢阅读;-)

你不能。看见正如那个问题中所建议的,您可以定义一个扩展方法来进行比较,以消除重复的强制转换。

不,不可能。问题是-为什么要与in进行比较?

我看到了这个问题,但问题中的ChrisHDog问的是两个枚举的重载运算符,所以我希望;-)但谢谢。因为我有数据库中的int Id。在与嵌入式应用程序、现场总线系统或其他东西交谈时,比较enum和int也是很常见的。是的,数据库中的位Id并不真正映射到enum;)正常地嵌入式系统中的Ints是有意义的。我会尽快转换到enum,然后继续比较enum。摆脱“低级”表示asim.imHo如果你认为狗表和繁殖在每行比应用程序是非常有用的有Enm’GalnReutiRe'=1等。