在lua中解决if else switch问题

之前写过一个c#版本的使用字典去解决switch问题  http://www.cnblogs.com/sanyejun/p/7806210.html

 

现在用写lua版本的

function Main()
    local myTable = {}
    --绑定
    myTable["555"] = function() TestMy() end
    --调用
    myTable["555"]();
end

function TestMy()
    -- body
    print("牛逼")
end

-----------------------------------------传递参数版本----------------------------------
function Main()
    local myTable = {}
    --绑定
  myTable["555"] = function(num) TestMy(num) end
    --调用
  myTable["555"]("99");
end

function TestMy(num)
  -- body
  print("牛逼"..num)
end

 

 
 

 ======================c#版本==============================

    class Program
    {
        //事件字典
        static Dictionary<int, Action> eventDic = new Dictionary<int, Action>();

        static void Main(string[] args)
        {
            eventDic[1] = delegate () { Mediator(); };
            eventDic[1]();

            Console.ReadLine();
        }

        private static void Mediator()
        {
            Console.WriteLine("哈哈哈");
        }
    }

-----------------------------带参数版本----------------------------------

    class Program
    {
        //事件字典
        static Dictionary<int, Action<int>> eventDic = new Dictionary<int, Action<int>>();

        static void Main(string[] args)
        {
            eventDic[1] = delegate (int a) { Mediator(a); };
            eventDic[1](99);

            Console.ReadLine();
        }

        private static void Mediator(int a)
        {
            Console.WriteLine("哈哈哈" + a);
        }
    }

 

posted @ 2017-12-20 19:58  三页菌  阅读(389)  评论(0编辑  收藏  举报