zoukankan      html  css  js  c++  java
  • 《Inside C#》笔记(十一) 运算符重载

    运算符重载与之前的索引器类似,目的是为了让语言本身使用起来更方便直接,也是一种语法糖。

    运算符重载(Operator Overloading)

    运算符重载的存在,使得现有的各种运算符可以被重新定义并用来操作用户自定义的数据类型。运算符重载只是语法糖,因为它的本质实际上还是对方法的调用,并没有为语言本身增加新特性。

     

    a) 运算符重载的写法

    public static <返回值>operator<运算符> (<参数1>,<参数2>…)

    还有一些规则:

    必须用public static 修饰

    不限制返回值的类型,但不推荐返回bool类型。

    参数的数量取决于被重载的运算符的性质,如果是一元运算符,重载时也需要一个参数,同样,二元需要两个。

    重载一元运算符时,参数的类型必须是当前类。

    重载二元运算符时,则要求第一个参数的类型是当前类,第二个参数类型不做限制。

     

    b) 能够被重载的运算符

    一元运算符:+,-,!,~,++,--,true,false

    二元运算符:+,-,*,/,%,&,|,^,<<,>>,==,!=,>,<,>=,<=

     

    c) 等号不能被重载,但如果二元运算符被重载,对应的组合运算符如+=,-=等也等同于被重载。

    [],和()也无法重载。

     

    d) 为了保证代码的可读性,只有在真正需要重载的时候再去重载。

     

    学习资料:Inside C# by Tom Archer

  • 相关阅读:
    My Eclipse
    那一夜,我被梦中笑醒的事之(数据库)
    KTV项目总结
    欢迎来到,数据库联盟!
    学习手工创建表,表关系以及用exists 来查询
    sql 将Null 值转化成空字符串
    jquery toggle
    推荐一个不错的配色网站
    css之zindex
    关于前后端分离与不分离
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/7129046.html
Copyright © 2011-2022 走看看