zoukankan      html  css  js  c++  java
  • CLR via C#学习笔记:C#操作符重载学习( 基于.NET3.5 )

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
        
    class MyCls
        
    {
            
    public int X
            
    {
                
    get;
                
    set;
            }

            
    public int Y
            
    {
                
    get;
                
    set;
            }

            
    public override string ToString()
            
    {
                
    return string.Format("X={0},Y={1}", X, Y);
            }

            
    public override bool Equals(object obj)
            
    {
                MyCls a 
    = obj as MyCls;

                
    return a.X == this.X && a.Y == this.Y;
            }

            
    public override int GetHashCode()
            
    {
                
    return X * Y;
            }
          
            
    public static MyCls operator +(MyCls a, MyCls b)
            
    {
                
    return new MyCls() { X = a.X + b.X, Y = a.Y + b.Y };
            }

            
    public static MyCls operator -(MyCls a, MyCls b)
            
    {
                
    return new MyCls { X = a.X - b.X, Y = a.Y - b.Y };
            }

            
    public static MyCls operator ++(MyCls a)
            
    {
                
    return new MyCls() { X = a.X++, Y = a.Y++ };
            }

            
    public static MyCls operator --(MyCls a)
            
    {
                
    return new MyCls() { X = a.X--, Y = a.Y-- };
            }

            
    public static bool operator ==(MyCls a, MyCls b)
            
    {
                
    return a.X == b.X && a.Y == b.Y;
            }

            
    public static bool operator !=(MyCls a, MyCls b)
            
    {
                
    return a.X != b.X && a.Y != b.Y;
            }

            
    public static void Main()
            
    {
                MyCls a 
    = new MyCls { X = 1, Y = 1 };
                MyCls b 
    = new MyCls { X = 2, Y = 2 };
                Console.WriteLine(a 
    + b);
                Console.WriteLine(b 
    - a);
                Console.WriteLine(b
    ++);
                Console.WriteLine(a
    --);
                Console.WriteLine(a
    ++ == b);
                Console.WriteLine(a
    != b--);
                Console.ReadLine();
            }

        }

    }


     

    输出结果:

    X=3,Y=3
    X=1,Y=1
    X=3,Y=3
    X=0,Y=0
    True
    False

  • 相关阅读:
    SQL 实现月度留存率/复购率
    Mac安装mysql数据库,并用navicat链接
    MAC电脑安装git
    form 表格提交
    幼稚从来都是相对的
    Vue 80端口无法使用,直接运行到1024问题
    iOS SDK framework 真机和模拟器合并步骤
    XCODE调试
    UN: Half of Refugee Children Do Not Go to School
    Vue界面传值逻辑
  • 原文地址:https://www.cnblogs.com/rockniu/p/1206880.html
Copyright © 2011-2022 走看看