【问题标题】:C# Luainterface two dotsC# Luainterface 两个点
【发布时间】:2014-11-23 19:06:54
【问题描述】:

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

Object:DoSomething();

进入这个:

Object.DoSomething();

没有出现任何错误。有任何想法吗?提前致谢。

【问题讨论】:

  • 不修补 Lua。

标签: c# lua luainterface


【解决方案1】:

这两行做不同的事情。 Object:DoSomething()Object.DoSomething(Object) 的语法糖。这就是将常规对象查找+函数调用转变为方法调用的原因。

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

【讨论】:

  • 所以,也许,我可以在运行之前用正则表达式解析我的脚本,将“.DoSomething(”替换为“:DoSomething(Object”?
  • 如果你有SomeOtherObject.DoSomething(),其中DoSomething 是一个静态方法(即它不带self 参数),会发生什么?那会搞砸的。你为什么这么努力避免:
【解决方案2】:

没有。这是另一种选择...

您可以将Object:DoSomething() 视为一种.NET 扩展方法。就像 .NET 扩展方法一样,您可以选择将其称为“静态”方法:

Object.DoSomething(Object);

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2011-05-09
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多