Lua 中使用C#的类
2017-10-31 14:26
323 查看
把C#中的全局方法注册到Lua中,,代码如下:
在Lua中使用C#中的类,此lua文件是在程序集的Debug目录下
在VS中使用文件的方式调用,查看效果:
class Program { static void Main(string[] args) { //把类中的一个普通方法注册到lua中去 Lua lua = new Lua(); //创建lua对象 Program thisPro = new Program(); //创建要注册方法所在类的对象 //注册普通方法 参数(注册方法所在的路径,所在类的对象,类的反射) lua.RegisterFunction("MyFunc", thisPro, thisPro.GetType().GetMethod("MyFunc")); //通过lua对象调用方法查看是否注册成功 lua.DoString("MyFunc()"); //把类中的静态方法注册进去 lua.RegisterFunction("MyStaticFunc", null, typeof(Program).GetMethod("MyStaticFunc")); lua.DoString("MyStaticFunc()"); Console.ReadKey(); } //普通方法 public void MyFunc() { Console.WriteLine("这是C#的一个普通方法:MyFunc"); } //静态方法 public static void MyStaticFunc() { Console.WriteLine("这是C#中的静态方方法:MyStaticFunc"); } }
require "luanet" --注意luanet.dll 和lua文件需要在同一目录下 luanet.load_assembly("LuaIntfaceDemo") --先获取程序集 Program = luanet.import_type("LuaIntfaceDemo.Program") --获取C#的类 print(Program) --然后既可直接调用静态方法 Program.MyStaticFunc() --非静态的方法需要实例化对象后调用 newprogram = Program() newprogram:MyFunc()
在VS中使用文件的方式调用,查看效果:
using System; using LuaInterface; namespace LuaIntfaceDemo { class Program { static void Main(string[] args) { ////把类中的一个普通方法注册到lua中去 Lua lua = new Lua(); //创建lua对象 lua.DoFile("test.lua"); Console.ReadKey(); } //普通方法 public void MyFunc() { Console.WriteLine("这是C#的一个普通方法:MyFunc"); } //静态方法 public static void MyStaticFunc() { Console.WriteLine("这是C#中的静态方方法:MyStaticFunc"); } } }
相关文章推荐
- Tolua使用笔记二:lua与C#的函数,变量交互方法
- Tolua使用笔记六:在lua中操作C#的委托事件与在lua中对Unity的GameObject的操作
- C#中使用LuaInterface
- Tolua使用笔记五:lua中遍历访问c#的Dictionary类对象与枚举类型
- Tolua使用笔记六:在lua中操作C#的委托事件与在lua中对Unity的GameObject的操作
- Lua_ uLua_C#中使用Lua_016
- 在C#中使用Lua代码或lua文件
- 在 C# 中使用 Lua(摘要)
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本(转载8)
- Lua_ uLua_C#中使用Lua_016
- Unity中XLua开发之使用C#加载lua脚本
- 在 C# 中使用 Lua(摘要)
- Lua的系统学习(杂)_在VS中使用Lua_将C#方法注册进入Lua并执行的操作步骤
- Tolua使用笔记二:lua与C#的函数,变量交互方法
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
- C#中使用LuaInterface笔记
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
- ulua中lua代码使用反射调用c#详解
- Tolua使用笔记五:lua中遍历访问c#的Dictionary类对象与枚举类型
- BOLT.NET中的关于数据库链接和使用的LUA与C#语言的交互设计