C#Luainterface两点

C#Luainterface两点,c#,lua,luainterface,C#,Lua,Luainterface,有没有办法通过将两个点变成一个点来改变对Lua中C#object方法的访问?我想改变这一点: Object:DoSomething(); 为此: Object.DoSomething(); 没有任何错误。有什么想法吗?提前谢谢。这两行的功能不同Object:DoSomething()是Object.DoSomething(Object)的语法糖。它将常规对象查找+函数调用转变为方法调用 所以不,没有办法做到这一点。不。这里有一个替代方案 可以考虑对象:DOMMETHONSE()/CODE >

有没有办法通过将两个点变成一个点来改变对Lua中C#object方法的访问?我想改变这一点:

Object:DoSomething();
为此:

Object.DoSomething();

没有任何错误。有什么想法吗?提前谢谢。

这两行的功能不同
Object:DoSomething()
Object.DoSomething(Object)
的语法糖。它将常规对象查找+函数调用转变为方法调用


所以不,没有办法做到这一点。

不。这里有一个替代方案

可以考虑<代码>对象:DOMMETHONSE()/CODE >是.NET扩展方法。就像.NET扩展方法一样,您可以选择像调用“静态”方法一样调用它:

Object.DoSomething(Object);

如果不修补Lua,就不能这样做。因此,也许我可以在运行脚本之前用regex解析脚本,将“.DoSomething”(“with”):DoSomething(Object“?如果您有
SomeOtherObject,会发生什么情况。DoSomething()
其中
DoSomething
是一个静态方法(即,它不带自参数)那会把事情搞砸的。你为什么要这么努力地避免呢?