zoukankan      html  css  js  c++  java
  • c#扩展方法

    扩展方法可以在不修改原有类的代码前提下,给类“增加”一个方法。扩展方法虽然属于静态方法,但调用的语法却和对象调用类似。直接用一个例子来演示扩展方法。

    首先,先准备一个类,这个类里面没有我们要扩展的方法:

    public class Card
    {
        private Chow chow;  //吃牌属性
        private Pong pong;    //碰牌属性
        private Kong kong;  //明杠牌属性
        private UnKong unKong;  //暗杠属性
        private CardCtrl cardCtrl;
        private readonly int weight;       //牌的权值
        private CardType.CharacterType belongto;  //角色类型
    /// <summary>
    /// 构造一张card
    /// </summary>
    /// <param name="Weight">哪张牌</param>
    /// <param name="Belongto">属于谁</param>
    /// <param name="cardCtrl">cardCtrl的引用</param>
        public Card(int Weight,CardType.CharacterType Belongto, CardCtrl cardCtrl)
        {
            weight = Weight;
            belongto = Belongto;
            this.cardCtrl = cardCtrl;
        }
    
    /// <summary>
    /// 设置chow,返回chow
    /// </summary>
        public Chow Chow
        {
            set { chow = value; }
            get { return chow; }
        }
    /// <summary>
    /// 设置pong,返回pong
    /// </summary>
        public Pong Pong
        {
            set { pong = value; }
            get { return pong; }
        }
        /// <summary>
        /// 设置exposed,返回exposed
        /// </summary>
        public Kong Kong
        {
            set { kong = value; }
            get { return kong; }
        }
    
       /// <summary>
        /// 设置 CardCtrl 返回CardCtrl
        /// </summary>
        public CardCtrl CardCtrl
        {
           set
           {
             //  GameObject.Destroy(cardCtrl.transform.parent.gameObject);
               cardCtrl = value;
           }
            get { return cardCtrl; }
        }
        /// <summary>
        /// 返回牌的权值
        /// </summary>
        public int  GetCardWeight
        {
            get { return weight; }
        }
        /// <summary>
        /// 牌的归属
        /// </summary>
        public CardType.CharacterType Attribution
        {
            set { belongto = value; }
            get { return belongto; }
        }
    
    }

    然后,再准备以后静态类,静态类里面有一个静态方法,对我们要扩展的类增加扩展方法:

    SayHello就是我们扩展的方法,参数是我们要扩展的类,用this标注。

    public static class nnn
    {
    public static void SayHello(this Card card)
    {
    Debug.Log("这是一个扩展方法");

  • 相关阅读:
    http
    node 学习 http
    socket.io
    每日日报
    每日日报
    每日日报
    06人件读书笔记之一
    每日日报
    每日日报
    05程序员修炼之道:从小工到专家阅读笔记之三
  • 原文地址:https://www.cnblogs.com/0315cz/p/8046322.html
Copyright © 2011-2022 走看看