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

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

创新互联建站是专业的武昌网站建设公司,武昌接单;提供成都做网站、网站建设、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行武昌网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

希望使用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#运算符重载“>”的操作有所帮助。

网页题目:C#运算符重载“>”的操作浅析
转载源于:http://www.csdahua.cn/qtweb/news6/551106.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网