Wo setzen Sie Konvertierungsfunktionen ein?

8

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%     
Dimitri C. 04.03.2010, 07:40
quelle

6 Antworten

8

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:

Kyle Rozendo 04.03.2010, 08:18
quelle
9

Das obige Beispiel sieht wie ein Kandidat für eine Erweiterungsmethode aus.
Wenn das nicht möglich ist, definiere ich sie als statische Methoden in einer statischen Klasse; Ich würde sie normalerweise in eine statische Klasse namens XXXHelper

setzen     
Gishu 04.03.2010 07:43
quelle
1

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.

    
Adriaan Stander 04.03.2010 07:42
quelle
1

Kannst du nicht einfach einen Cast benutzen? %Code%. Oder rufen Sie (UInt32)e

auf     
Tim Goodman 04.03.2010 07:47
quelle
1

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.

    
S.C. Madsen 04.03.2010 07:50
quelle
0

Ich habe mich einmal mit dem ähnlichen Problem konfrontiert und das habe ich gemacht

%Vor%     
Pratik Deoghare 04.03.2010 07:51
quelle

Tags und Links