Hi!
Weiß jemand von euch ob es einen define ersatz in C# gibt?
Ich hab nähmlich folgendes Problem:
Ich möchte ein Programm schreiben von dem ich vorher aber nicht weiß ob double alleine reicht. Jetzt werd ich mir einige Variablen anlegen vom Typ double nachher das programm laufen lassen und dann wenn ich ein Problem bekomme das double zu klein ist muss ich das ändern, aber ich will dann net alle meine double umschreiben müssen gibts da was das ich so was wie
#define mytype double
mache und wenn das nicht reicht umschreibe
#define mytype decimal
weiß das jemand von euch?
und was nicht so wichtig aber auch interessant währe ist:
gibts eine Möglichkeit dass ich nicht immer Math.Sin(x) schreiben muss sondern nur sin(x) (ohne das ich eine eigene Funktion mache) schreibe?
lg
Original von Blue_Dragon
Weiß jemand von euch ob es einen define ersatz in C# gibt?
Gibts zum Glück nicht!
Für bedingte Kompilierung ist der Präprozessor okay, für den Rest gehört er abgeschafft, wurd er ja auch zum Glück in C#.
Original von Blue_Dragon
Ich möchte ein Programm schreiben von dem ich vorher aber nicht weiß ob double alleine reicht.
Was meinst du mit "nicht reicht"? Vom Wertebereich her? Dann nimm doch gleich den größeren. Falls du dir dann sorgen um erhöhten Speicherverbrauch machst, bist du eh bei der falschen Sprache 🙂 - und notfalls schreib dir nen eigenen Datentyp, wo du dann die Implementierung ändern kannst.
Original von Blue_Dragon
gibts eine Möglichkeit dass ich nicht immer Math.Sin(x) schreiben muss sondern nur sin(x) (ohne das ich eine eigene Funktion mache) schreibe?
Nee, weil das statische Funktionen sind, und die gehören nunmal zu einer Klasse, und das ist in diesem Fall die Math Klasse.
Baka wa shinanakya naoranai.
Mein XING Profil.
moin,
ist zwar arg alt...
also ich kann nicht mehr
#define MAX_USER 10
machen?
wie lös ich das denn sonst?
Original von JAck30lena
konstanten?const
oder statische variablen?
static
Was haben denn statische Variablen auf einmal mit Konstanten zu tun?
Für die nur-Konstanten braucht man die Instanz der Klasse und bei den statischen nicht.
> Codejunky <
Hallo JunkyXL,
Für die nur-Konstanten braucht man die Instanz der Klasse und bei den statischen nicht.
Interessanter Ansatz, stimmt aber nicht. Konstanten sind automatisch static. Das sieht man daran, dass es zum einen dem error CS0504: "Die Konstante <Name> kann nicht als "static" gekennzeichnet sein." gibt und zum anderen kann man auch in statischen Klassen const benutzen.
herbivore
Achtung: const nur Assembly-intern einsetzen. Sonst readonly verwenden.
Gibts dafür auch einen Grund?
e.f.q.
Aus Falschem folgt Beliebiges
Hallo Traumzauberbaum,
Konstanten werden als Wert in den IL-Code aller benutzenden Assemblies kompiliert. Wenn du dann später den Wert der Konstante änderst und nur die definierende Assembly übersetzt, reicht das nicht, du musst auch alle benutzenden Assemblies neu übersetzen.
herbivore
Was haben denn statische Variablen auf einmal mit Konstanten zu tun?
Für die nur-Konstanten braucht man die Instanz der Klasse und bei den statischen nicht.
selbst wenn dem so wäre dann ist das immernoch ein rudimentärer (oder besser gesagt ein typsicherer) ersatz für #define
Original von herbivore
Hallo JunkyXL,Interessanter Ansatz, stimmt aber nicht. Konstanten sind automatisch static.
herbivore
Ja stimmt, bin seltsamerweise davon ausgegangen, dass man eine Instanz brauch.
Habe die Tatsache anscheinend nicht immer ganz wahrgenommen 🙂
> Codejunky <