操作符重载和函数重载
C#中定义的操作符重载和函数重载在Lua中基本上能够使用,不过需要注意的是由于Lua中表示数值的类型只有一种(number),所以C#中对于数值类型之间的重载是不能够正确的识别的,通常只会调用类型符合的重载函数列表中先定义的函数
假设有下面两个C#类,在Vector类中重载了操作符"+",在Overload类中对函数Add进行了重载,类型分别是int,float和string
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using UnityEngine;
using XLua;
[LuaCallCSharp]
public class Vector
{
public float x;
public float y;
public Vector()
{
Debug.Log("调用了Vercor构造函数 ");
}
public Vector(float x, float y)
{
this.x = x;
this.y = y;
}
public static Vector operator +(Vector v1, Vector v2)
{
return new Vector(v1.x + v2.x, v1.y + v2.y);
}
public override string ToString()
{
return x+","+y;
}
}
[LuaCallCSharp]
public class OverrideLoad
{
public float Add(float num1, flo