zoukankan      html  css  js  c++  java
  • 运算符重载

    C#中也有类似于C++的运算符重载,如下例中Rectangel中的+操作

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

    namespace ConsoleApplication1
    {
        class Program
        {
            public class Rectangle
            {
                public int width;
                public int height;

                public Rectangle(int width, int height)
                {
                    this.width = width;
                    this.height = height;
                }

                public override string ToString()
                {
                    return "width= " + width + ",height = " + height;
                }

                public static bool operator ==(Rectangle lhs, Rectangle rhs)
                {
                    Console.WriteLine("In operator ==");
                    if (lhs.width == rhs.width && lhs.height == rhs.height)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }

                public static bool operator !=(Rectangle lhs, Rectangle rhs)
                {
                    Console.WriteLine("In operator !=");
                    return !(lhs == rhs);
                }

                public override bool Equals(object obj)
                {
                    Console.WriteLine("In Equals()");
                    if (!(obj is Rectangle))
                    {
                        return false;
                    }
                    else
                    {
                        return this == (Rectangle)obj;
                    }
                }

                public static Rectangle operator +(Rectangle lhs, Rectangle rhs)
                {
                    Console.WriteLine("In operator +");
                    return new Rectangle(lhs.width + rhs.width, lhs.height + rhs.height);
                }

            }
            static void Main(string[] args)
            {
                Rectangle myRectangle = new Rectangle(1, 4);
                Console.WriteLine("myRectangle: " + myRectangle);
                Rectangle myRectangle2 = new Rectangle(1, 4);
                Console.WriteLine("myRectangle2: " + myRectangle2);

                if (myRectangle == myRectangle2)
                {
                    Console.WriteLine("myRectangle is equal to myRectangle2");
                }
                else
                {
                    Console.WriteLine("myRectangle is not equal to myRectangle2");
                }
                Rectangle myRectangle3 = myRectangle + myRectangle2;
                Console.WriteLine("myRectangle3: " + myRectangle3);
                int i = System.Console.Read();
            }
          
        }
    }

  • 相关阅读:
    PHP xml_get_current_column_number() 函数
    PHP xml_get_current_byte_index() 函数
    PHP xml_error_string() 函数
    PHP utf8_encode() 函数
    PHP utf8_decode() 函数
    MySQL 资料库概论与MySQL 安装
    SEO之网站关键词的优化 :首页,内页关键字,长尾关键字
    前端开发chrome console的使用 :评估表达式 – Break易站
    chrome console的使用 : 异常和错误的处理 – Break易站
    SEO的基本概念 和 提交SITEMAP到搜索引擎
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035667.html
Copyright © 2011-2022 走看看