在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 @   三页菌  阅读(404)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示