Wie einfach/schnell ersetzen Sie Floats für doubles (zum Beispiel) für die Kompilierung zu zwei verschiedenen Zielen mit diesen beiden besonderen Möglichkeiten der primitiven Typen?Wie wird ein primitiver Typ beim Kompilieren zu verschiedenen Zielen vorübergehend durch einen anderen ersetzt?
Diskussion: Ich habe eine große Menge an C# -Code in Entwicklung, die ich kompilieren muss, um abwechselnd float, double oder dezimals abhängig von dem Anwendungsfall der Zielbaugruppe zu verwenden.
Verwenden Sie etwas wie "Klasse MYNumber: Double", so dass es nur notwendig ist, eine Codezeile zu ändern, funktioniert nicht, da Double versiegelt ist, und natürlich gibt es keine # definieren in C#. Den Code mit #if #else Anweisungen pepping ist auch keine Option, es gibt einfach zu viel Unterstützung Math-Operatoren/verwandten Code mit diesen bestimmten primitiven Typen.
Ich weiß nicht, wie ich diese scheinbar einfache Aufgabe erledigen soll, danke!
Edit: Nur ein kurzer Kommentar in Bezug auf Boxing in Kyles Antwort erwähnt: Leider muss ich Boxen vermeiden, vor allem da Floats werden ausgewählt, wenn maximale Geschwindigkeit erforderlich ist, und Dezimalzahlen, wenn maximale Genauigkeit die Priorität ist (und die 20x + Leistungshit ist akzeptabel). Boxen würde wahrscheinlich Dezimalzahlen als eine gültige Wahl ausschließen und den Zweck etwas besiegen.
Edit2: Als Hinweis, dass Generika als mögliche Antwort auf diese Frage suggerieren, dass es viele Probleme gibt, die Generika auszählen (zumindest für unsere Bedürfnisse). Für eine Übersicht und weitere Referenzen siehe Using generics for calculations
+1 Schöne Frage, viele verschiedene Lösungen wurden hier vorgestellt, die alle sehr ähnlich, aber dennoch interessant zu denken sind. Ich könnte dies jetzt in der Zukunft verwenden – LorenVS