c#一元操作符過載

wisdomone1發表於2012-03-09
//實現
class Player
    {
        //測試操作符過載 在此為遊戲角色升級
        public int tili;
        public int neili;
        public Player()
        {
            tili = 5;
            neili =25;
        }

        //如下操作符過載為,角色一升級就把內力和體力加對應的值,然後返回類物件
        //是一元操作符,只能作用於一個物件,即player類的一個物件
        //操作符過載語法格式:public static 型別 operator ++(型別 變數)
        //在C#中,下列操作符可以過載
        // + - . ! ~ -- ++ true false . / % ^ << >> != == < > <= >=

        //升級時 操作符 ++ 過載
        public static Player operator ++(Player p)
        {
            //方法引數是類物件,對類物件進行相關操作後,然後返回類物件
            p.tili = p.tili + 10;
            p.neili = p.neili + 30;
            return p;
        }

        //降級時 操作符 -- 過載
        //其實操作符過載定義就是多了一個operator 操作符 2部分
        public static Player operator --(Player p)
        {
            //方法引數是類物件,對類物件進行相關操作後,然後返回類物件
            p.tili = p.tili - 10;
            p.neili = p.neili - 30;
            return p;
        }

        //顯示升級前後體力及內力值
        public  void Show()
        {
            Console.WriteLine("體力目前是:{0}",tili);
            Console.WriteLine("內力目前是:{0}", neili);
        }
    }



呼叫

class Program
    {
      
         //演示操作符過載,角色升級
        static void Main(string[] args)
        {
            Player p = new Player();
            p.Show();
            //升級
            p++;//操作符過載
            p.Show();

            //降級
            p--;
            p.Show();
            Console.ReadKey(); ;
          
        }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-718198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章