J'ai une classe générique (C#),C# Convertir T à longue
class MyClass<T> where T : struct, IComparable<T>
{
public T filelocation;
}
T peut être UInt32 ou UInt64 (rien d'autre).
J'ai besoin de convertir emplacementfichier un long à rechercher dans un fichier ...
J'ai essayé ce qui suit
long loc = (T)myclass.filelocation;
long loc = (T)(object)myclass.filelocation;
Mais rien ne semble fonctionner ...
Toutes les idées ?
Si vous avez une classe générique/méthode qui ne prend uint ou ulong alors vous êtes probablement abuser ou abuser des génériques. Les génériques sont supposés être * génériques *. Pourquoi ne pas simplement avoir une classe non générique qui prend un ulong? L'uint sera automatiquement converti en ulong. –
Je travaille avec le format de fichier PST. Il a deux formats, ANSI (UInt32) et UNICODE (UInt64). Je le fais de cette façon pour (espérons-le) réduire la duplication de code –
@Eric: Je suis allé votre route. Je l'ai réécrit pour ne pas être générique. –