【发布时间】:2014-11-23 19:06:54
【问题描述】:
有没有办法通过将两个点合二为一来更改对 Lua 中我的 C# 对象方法的访问?我想改变这个:
Object:DoSomething();
进入这个:
Object.DoSomething();
没有出现任何错误。有任何想法吗?提前致谢。
【问题讨论】:
-
不修补 Lua。
标签: c# lua luainterface
有没有办法通过将两个点合二为一来更改对 Lua 中我的 C# 对象方法的访问?我想改变这个:
Object:DoSomething();
进入这个:
Object.DoSomething();
没有出现任何错误。有任何想法吗?提前致谢。
【问题讨论】:
标签: c# lua luainterface
这两行做不同的事情。 Object:DoSomething() 是 Object.DoSomething(Object) 的语法糖。这就是将常规对象查找+函数调用转变为方法调用的原因。
所以不,没有办法做到这一点。
【讨论】:
SomeOtherObject.DoSomething(),其中DoSomething 是一个静态方法(即它不带self 参数),会发生什么?那会搞砸的。你为什么这么努力避免:?
没有。这是另一种选择...
您可以将Object:DoSomething() 视为一种.NET 扩展方法。就像 .NET 扩展方法一样,您可以选择将其称为“静态”方法:
Object.DoSomething(Object);
【讨论】: