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

  • 相关阅读:
    Android — Camera聚焦流程
    Camera.Parameters 参数
    Android 中的 Service 全面总结
    android中Camera setDisplayOrientation使用
    Android动画学习笔记-Android Animation
    mediaplayer与surfaceView,无法播放问题
    android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer
    转:Android应用开发性能优化完全分析
    Android开发者指南(9) —— ProGuard
    计算机科学图书待读
  • 原文地址:https://www.cnblogs.com/rockniu/p/1206880.html
Copyright © 2011-2022 走看看