J'ai un C++ classe qui est très simple:Comment puis-je utiliser générique dans un opérateur implicite?
struct Pt_t
{
T x, y;
template <class T2> operator Pt_t<T2>() { Pt_t<T2> pt = {x, y}; return pt; }
};
Cela me permet de créer un pt qui a T comme tout type que je veux. Je peux également faire Pt_t<s8> = Pt_t<u64>;
sans problème. Comment est-ce que je fais la même chose en C#? J'ai essayé le ci-dessous et ai eu une erreur:
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;
}
}
AFAIK, "Pt_t" est pas un symbole de l'opérateur en C++ ... c'était-il que vous avez essayé d'écrire avant qu'il ne soit mutilée (en C++, ainsi que C#)? –
@Pontus - il essaie d'être un opérateur de conversion ... à Pt avec un argument de type générique différent –
Ah: un nom de classe - aurait dû lire plus attentivement! –