zoukankan      html  css  js  c++  java
  • C# 重载运算符--不合理设计,只支持静态

    什么叫做重载运算符

       比如:int x=1;

               int y=2;

               int total=x+y;

       我们比较喜欢看上面这种写法,而不是这种,

       int x=1;

       int y=1;

       int total=int.add(x,y); 上面所说的就是重载运算符

       在C#中,我们通过使用operator关键字来进行运算符的重载

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 重载运算符 {
        class Program {
            static void Main(string[] args) {
    
                Salary mikeIncome = new Salary() { RMB = 22 };
                Salary roseIncome = new Salary() { RMB = 33 };
                //Salary familyIncome = Salary.Add(mikeIncome, roseIncome);
                //Console.WriteLine(familyIncome.RMB);
                int x = 1;
                Salary testIncome=mikeIncome + roseIncome;
                Console.WriteLine(testIncome.RMB);
    
                Console.ReadKey();
    
            }
        }
    
        public class Salary {
            public int RMB { get; set; }
            public static Salary Add(Salary one, Salary two) {
                two.RMB = one.RMB + two.RMB;
                return two;
            }
    
            //现在用重载运算符来实现一下
            public static Salary operator+(Salary s1, Salary s2){
                s2.RMB = s1.RMB + s2.RMB;
                return s2;
            }
    
        }
    
    }

    上面就是一个重载运算符,要记住的是重载运算符,必须是静态方法。

    C++里面的重载运算符是可以是实例,以及虚的重载,但是C#重载运算符竟然只支持静态方法的,看到很多人喷,一些需要高性能计算的东西,用了静态方法之后,整个性能就慢了很多,这个是发现C#设计不合理的第二个地方。

       

       

  • 相关阅读:
    2018-8-10-win10-uwp-重启软件
    jquery动画滑入滑出
    jquery类操作
    jquery类操作
    jquery手风琴
    jquery突出显示
    jquery隔行变色
    jquery下拉菜单
    jquery筛选选择器
    jquery过滤选择器
  • 原文地址:https://www.cnblogs.com/gdouzz/p/6927296.html
Copyright © 2011-2022 走看看