从C#中传递object到lua的一个问题

摘要:
最初,我想将表单对象从C#转移到Lua,然后调用Lua中表单下的各种组件,如文本框、按钮等,以控制Lua中C#中表单界面的布局。我猜只能传递单个对象,其属性和从属子对象只能成为字符串。

本来我是想从C#中把form对象传递到Lua里面去,然后在Lua中调用form下面的各个组件,比如textbox、button等,从而实现在Lua中控制C#中form界面的布局。

但是发现如下问题:

 1 //Form1.cs
2
3 class Form1
4 {
5 private System.Windows.Forms.TextBox textBox1;
6 private System.Windows.Forms.Button button1;
7
8 private void button1_Click(object sender, EventArgs e)
9 {
10 Lua m_lua = new Lua();
11 m_lua.DoFile("plugin.lua");
12 object[] objs = m_lua.GetFunction("OnLoad").Call(this, this.textBox1);
13 m_lua.Close();
14 }
15 }
1 --plugin.lua
2
3 function OnLoad(form, textbox)
4 textbox.Text = form.button1.Text -->Nil
5 textbox.Text = form.button1 -->希望获得button对象,结果发现这个是字符串
6 end


问题在于,本来我以为将form传递到lua中后,就可以在lua中调用form.button1及对象链,结果发现form.button1变成了字符串。

我猜测可能是只能传递单个对象,其属性和下属的子对象只能变成string了(toString())。

免责声明:文章转载自《从C#中传递object到lua的一个问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇学习记录:touch事件的坐标获取JSF>概述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

对象Bean与Map互转问题

一、摘要 在实际开发过程中,经常碰到需要进行对象与map之间互转的问题,其实对于对象、Map 之间进行互转有很多种方式,下面我们一起来梳理一下: 利用 JSON 工具包,将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底; 利用 Java 反射,获取 Bean 类的属性和值,再转换到 Map 对应的键值对中,相对来说这种方法效率高...

unity resources文件夹作用

本篇文章讨论了Unity中的Resources系统。通过Resources系统,开发者可以将Asset资源放在一个或多个名为Resources的文件夹中,并且在运行时利用ResourcesAPI来加载或卸载这些Asset中的Object。 1 Resources系统的最佳实践 不要使用它! 强烈不建议使用Resources系统,原因如下: 1.1使用Res...

Object.freeze

Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze() 返回和传入的参数相同的对象。数据冻结后不再被修改在vue中数据冻结的...

[笔记]--Linux下运行Python时报错解决办法

1、提示:bash: ./mp.py:/usr/bin/python^M:损坏的解释器: 没有该文件或目录 解决办法: $ sed -i 's/ $//' *.py 有时候在windows下编写的python脚本在linux下不能运行,就是因为^M的原因,因为windows下行结束符是/r/n,而liinux只需要/n. 我们可以使用cat –v来显示一...

PyQt(Python+Qt)学习随笔:QTreeWidgetItem项中列的复选状态访问方法

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,项中每列数据都可以单独设置复选状态,如图顶层第一项第一列设置了复选状态:项中列的复选状态可以通过checkState(int column)来获取,如果要改变项中指定列的复选状态可以调用...

awk命令

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得...