public bool Equals(TValue o) { if (Tt != o.Tt) { return(false); } switch (Tt) { case (int)LuaType.LUA_TNIL: return(true); case (int)LuaType.LUA_TBOOLEAN: return(BValue() == o.BValue()); case (int)LuaType.LUA_TNUMBER: { return(NValue == o.NValue()); } case (int)LuaType.LUA_TUINT64: return(UInt64Value == o.UInt64Value); case (int)LuaType.LUA_TSTRING: return(SValue() == o.SValue()); default: return(System.Object.ReferenceEquals(OValue, o.OValue)); } }