我有一个共享的类库。因此,我想创建隐含在平台上的运算符。 但是此代码无法正常工作。
using System;
using GTANetworkAPI;
namespace FoxRPShared.Utils {
public class Vector3 {
public float X;
public float Y;
public float Z;
public Vector3() { }
public Vector3(float x, float y, float z) {
X = x;
Y = y;
Z = z;
}
#if SERVER
public static implicit operator GTANetworkAPI.Vector3(Vector3 v) => new GTANetworkAPI.Vector3(v.X, v.Y, v.Z);
public static implicit operator Vector3(GTANetworkAPI.Vector3 v) => new Vector3(v.X, v.Y, v.Z);
#else
public static implicit operator RAGE.Vector3(Vector3 v) => new RAGE.Vector3(v.X, v.Y, v.Z);
public static implicit operator Vector3(RAGE.Vector3 v) => new Vector3(v.X, v.Y, v.Z);
#endif
}
}
不幸的是,我收到类似Cannot implicitly convert type "FoxRPShared.Utils.Vector3" to "GTANetworkAPI.Vector3".(CS0029)
的错误消息
如果我删除指令,则代码会编译。