Da C # keine Unterstützung für freistehende Funktionen bietet, finde ich es schwierig, einen Platz für Konvertierungsfunktionen zu finden. Zum Beispiel möchte ich eine Enumeration in eine Zahl konvertieren. In C ++ würde ich die folgende freistehende Funktion dafür machen:
%Vor%Wie kann ich das elegant in C # machen? Soll ich eine statische Dummy-Klasse zum Halten der Funktion erstellen, und wenn ja, wie finde ich einen aussagekräftigen Namen dafür? Oder sollte ich eine partielle Klasse Convert machen?
Irgendwelche Ideen?
Vielen Dank im Voraus.
Update : Im Nachhinein war mein Beispiel nicht sehr gut gewählt, da es eine Standardkonvertierung zwischen enum und int gibt. Dies wäre ein besseres Beispiel:
%Vor%Ich würde mit gehen:
%Vor% Dann würden Sie einfach MyEnum.ConvertToInt();
verwenden. Das Gleiche kann für mehrere Conversions innerhalb derselben Klasse getan werden. Erweiterungsmethoden sind kurz gesagt, verdammt sexy.
Auch Erics Kommentar zu Type Converters hat mich zum googeln gebracht. Ziemlich genial, aber ich bin mir nicht sicher, wie man sie mit Enum
benutzt, aber für andere Conversions sind sie sauber wie ein Pfiff, um sie zu implementieren. Schau mal hier:
Ich würde empfehlen, dass Sie alle Ihre Hilfsmethoden / Konstanten und enums erstellen und zusammenstellen, die in anderen Projekten verwendet werden.
Dies ermöglicht es Ihnen, diese Assembly einfach in andere Assemblies einzufügen, die sie benötigen, und zirkuläre Referenzen zu vermeiden.
Kannst du nicht einfach einen Cast benutzen? %Code%. Oder rufen Sie (UInt32)e
Die Idee, eine statische "Dummy-Klasse" zu erstellen, scheint Microsoft zu sein:
Ich denke, in Ihrem speziellen Beispiel macht das Ausführen einer partiellen Klasse Convert am meisten Sinn.
Ich habe mich einmal mit dem ähnlichen Problem konfrontiert und das habe ich gemacht
%Vor%Tags und Links c# coding-style