有沒有辦法通過將兩個點轉換爲一個來改變對Lua中我的C#對象方法的訪問?我想改變這一點:C#Luainterface兩個點
Object:DoSomething();
進入這個:
Object.DoSomething();
沒有得到任何錯誤。有任何想法嗎?提前致謝。
有沒有辦法通過將兩個點轉換爲一個來改變對Lua中我的C#對象方法的訪問?我想改變這一點:C#Luainterface兩個點
Object:DoSomething();
進入這個:
Object.DoSomething();
沒有得到任何錯誤。有任何想法嗎?提前致謝。
兩條線做不同的事情。 Object:DoSomething()
是語法糖Object.DoSomething(Object)
。這是將常規對象查找+函數調用轉換爲方法調用的原因。
所以不,沒有辦法做到這一點。
所以,也許我可以在運行前用正則表達式解析我的腳本,替換「.DoSomething(」和「:DoSomething(Object,」)? – 2014-09-29 16:03:45
如果你有'SomeOtherObject.DoSomething()',其中'DoSomething'是一個靜態方法(即它沒有自己的參數)?這會搞砸了。你爲什麼努力避免':'? – 2014-09-29 16:06:14
號下面是一個替代...
你可以考慮Object:DoSomething()
是一個.NET擴展方法。就像.NET擴展方法一樣,您可以選擇將其稱爲「靜態」方法:
Object.DoSomething(Object);
不是沒有修補Lua。 – lhf 2014-09-29 12:08:35