闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

C# 重载运算符

Posted on 2019-01-14 22:52  闪电龟龟  阅读(1973)  评论(0编辑  收藏  举报

能重载的一元运算符:+、-、!、~、++、--、True、False

能重载的二元运算符: +、-、*、/、%、&、|!、^、<<、>>、==、!=、>、<、>=、<=

不能重载的运算符:=、&&、||、[]、()等等

 

重载运算符不能做什么?

1.创造新的运算符;2.改变运算符语法;3.重定义运算符如何处理预定义类型;4.改变运算符的优先级和结合性

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Dog dog1 = new Dog("jack");
            dog1++;
            dog1.ShowAge();
        }
    }
    public class Dog
    {
        private string Name;
        private int age = 0;
        public Dog(string dname)
        {
            Name = dname;
        }
        public void ShowName()
        {
            Console.WriteLine("这是一条狗:{0}", Name);
        }
        public void ShowAge()
        {
            Console.WriteLine("宠物的年龄为" + age);
        }
        // 使用重载运算符
        public static Dog operator ++(Dog dog)
        {
            dog.age++;  // 年龄自增
            return dog;
        }
    }
}