Ich habe eine C++ Klasse, die sehr einfach ist:Wie kann ich Generic in einem impliziten Operator verwenden?
struct Pt_t
{
T x, y;
template <class T2> operator Pt_t<T2>() { Pt_t<T2> pt = {x, y}; return pt; }
};
, die ich pt erstellen kann, die T als jede Art hat ich will. Ich kann auch Pt_t<s8> = Pt_t<u64>;
ohne ein Problem tun. Wie mache ich das gleiche in C#? Ich habe versucht, die unten und bekam eine Fehlermeldung:
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" ist kein Operator Symbol in C++ ... was es Ihnen zu schreiben versucht, bevor er verstümmelt wurde (in C++ als auch C#)? –
@Pontus - es versucht, ein Konvertierungsoperator zu sein ... zu Pt mit einem anderen generischen Typ Argument –
Ah: ein Klassenname - sollte genauer gelesen haben! –