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

  • 相关阅读:
    java及前端请求跨域问题
    Node.js初级
    Oracle学习过程(随时更新)
    记录一下工作中犯的低级错误
    Maven管理项目架包
    使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
    position 定位属性
    一般处理程序 ashx 无法获取Session 值
    删除SQL SERVER 登录记录
    web.config 连接字符串 加密
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/7129046.html
Copyright © 2011-2022 走看看