我有一个非常简单的 c++ 类:
struct Pt_t
{
T x, y;
template <class T2> operator Pt_t<T2>() { Pt_t<T2> pt = {x, y}; return pt; }
};
这使我可以创建一个具有 T 为我想要的任何类型的 pt。我也可以Pt_t<s8> = Pt_t<u64>;
没有问题。我如何在 C# 中做同样的事情?我尝试了以下并得到了一个错误:
class Pt<T>
{
public T x, y;
//between operator and <T2>, error CS1031: Type expected
public static implicit operator<T2> Pt<T>(Pt<T2> v) {
Pt<T> r = new Pt<T>();
r.x = v.x;
r.y = v.y;
return r;
}
}