Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# .net运算符重载_C#_.net_Overloading_Operator Keyword - Fatal编程技术网

C# .net运算符重载

C# .net运算符重载,c#,.net,overloading,operator-keyword,C#,.net,Overloading,Operator Keyword,为什么某些操作符(如比较操作符)需要它 < <= > >= = <> 没有 注意:我的解决方法是将过时属性粘贴到不需要的操作符上 可能是因为如果您重载运算符的一侧,您正在实现一些自定义规则,而默认运算符将与您的规则不匹配,从而产生奇怪的行为 例如,如果“int>”的定义是“return(x>5);”(出于某些原因…)并且您没有为“int覆盖反向规则,可能是因为如果您重载运算符的一侧,您正在实现一些自定义规则,默认运算符将与您的规则不匹配,从

为什么某些操作符(如比较操作符)需要它

<   <=   >   >=   =  <>
没有


注意:我的解决方法是将过时属性粘贴到不需要的操作符上

可能是因为如果您重载运算符的一侧,您正在实现一些自定义规则,而默认运算符将与您的规则不匹配,从而产生奇怪的行为


例如,如果“int>”的定义是“return(x>5);”(出于某些原因…)并且您没有为“int覆盖反向规则,可能是因为如果您重载运算符的一侧,您正在实现一些自定义规则,默认运算符将与您的规则不匹配,从而产生奇怪的行为


例如,如果“int>”的定义是“return(x>5);”(由于某种原因……),你并没有过度地考虑“int”P>运算符重载在.NET中(至少对于C++和VB)的反规则,它比C++中的运算符重载更不灵活。 Java完全消除重载的一个原因是,太多的开发人员滥用重载来做一些看起来很聪明的事情,这让其他开发人员感到困惑,并打破了通用算法的核心假设,这些算法期望能够(比如)合理地比较一个用户类型的两个实例

尽管.Net带来了一些灵活性,但设计者们还是小心地只允许某些操作符重载,目的是它们只用于其习惯意义

对称实现比较运算符的要求就是对这一意图的认可


如果你想做更具攻击性的操作符重载,我鼓励你考虑使用F,你可以访问更宽的调色板,用它绘制聪明的操作符符号。

运算符重载in .NET(至少对于C++和VB)是故意的,比C++中的运算符重载灵活。

Java完全消除重载的一个原因是,太多的开发人员滥用重载来做一些看起来很聪明的事情,这让其他开发人员感到困惑,并打破了通用算法的核心假设,这些算法期望能够(比如)合理地比较一个用户类型的两个实例

尽管.Net带来了一些灵活性,但设计者们还是小心地只允许某些操作符重载,目的是它们只用于其习惯意义

对称实现比较运算符的要求就是对这一意图的认可


如果你想做更具攻击性的运算符重载,我鼓励你考虑使用f*,在那里你可以访问一个更宽泛的符号调色板,用它来画出聪明的运算符符号。

< <代码> x代码>有什么具体含义,但是<代码> y>=x < /代码>除非您重载运算符使其含义与直观含义大不相同,否则您可以更自然地实现绑定检查Lowerx如何具有特定的含义,但是
y>=x
没有,除非您重载运算符使其含义与直观含义大不相同,否则您可以更自然地实现绑定检查Lower=<=!=”它不局限于只返回一个bool,它可以返回(我认为)任何类型的bool它不局限于只返回一个bool,它可以返回(我认为)任何类型的bool。
<  >=
<
>=