C#运算符重载“>”的操作浅析

开发 后端
C#运算符重载“>”的操作在本文通过一个实例的讲解来说明“>”的使用细节。

C#运算符重载“>”的操作问题的出现:今天一个同学在做ProjectHoshimi的时候,自己在封装一个对象库。

希望使用C#运算符重载>的操作,语法正确,但是总是不能成功。

按照MSDN C# Keyword opeartor定义可以有下面的语法构成

  1. public static result-type operator unary-operator ( op-type operand )  
  2. public static result-type operator binary-operator (       
  3.  op-type operand,      
  4.   op-type2 operand2  
  5. )  
  6. public static implicit operator conv-type-out ( conv-type-in operand   
  7. )  
  8. public static explicit operator conv-type-out (   
  9. conv-type-in operand   

那么下面代码就是正确的

  1.   class A    {   
  2.      private int a;     
  3.    public static bool operator>(A a,A b){   
  4.          return a.a > b.a;  
  5.        }        
  6. public A(int value)        {    
  7.         a = value;       
  8.  }    

C#运算符重载“>”的操作问题再次提出:为什么不能成功编译呢?因为>运算符在.NET Framework中不允许但对出现,如下代码就是正确的。

  1.  class A    {   
  2.     private int a;    
  3.    public static bool operator>(A a,A b){     
  4.       return a.a > b.a;    
  5.     }       
  6. public static bool operator <(A a, A b)        {           
  7. return a.a < b.a;      
  8.   }       
  9. public A(int value)        {    
  10.        a = value;     
  11.   }    

为什么需要这样做呢?

其实我觉得这个就是C#在设计上面默认了一些让系统编码更安全的一些约束。如果没有这样的约束,那么可能是>重载了,但是<没有重载,但是如果有人使用将会发现很未知的错误。

C#运算符重载“>”的操作的基本情况就向你介绍到这里,希望对你了解C#运算符重载“>”的操作有所帮助。

【编辑推荐】

  1. C#运算符重载实例浅析
  2. C#运算符重载概念及应用详解
  3. C#运算符重载实现复数运算
  4. C#运算符重载实例解析
  5. C#运算符重载的一些总结
责任编辑:仲衡 来源: cnblogs
相关推荐

2009-08-12 10:27:12

C#运算符重载运算符重载实例

2009-08-12 09:30:10

C#??运算符

2009-08-11 15:51:08

C#运算符算术运算符

2009-08-12 10:47:03

C#运算符重载

2009-08-14 10:16:57

C#运算符重载

2009-08-12 10:56:47

C#运算符重载C#运算符重载实例

2009-09-04 13:18:10

C#允许运算符重载

2009-08-11 16:03:13

C#运算符

2009-08-12 11:20:51

C#运算符重载

2009-08-12 10:37:13

C#运算符重载

2009-08-18 17:42:12

C#操作符重载

2009-08-12 10:20:52

C#位运算符

2009-08-12 15:20:18

C#赋值运算符复合赋值运算符

2009-08-12 15:02:49

C#赋值运算符简单赋值运算符

2009-11-06 13:57:52

C#

2009-08-12 14:49:33

C#移位运算符

2021-12-15 10:25:57

C++运算符重载

2009-08-12 14:29:32

C#条件运算符

2009-08-12 13:35:22

C#关系运算符

2009-08-11 14:16:38

C# New运算符
点赞
收藏

51CTO技术栈公众号