2016-04-20 5 views
0

Ich habe das schon vorher gemacht und seitdem vergessen, möchte aber nochmal in C#. Ich kann jedoch nicht für das Leben von mir erinnern, wie diese Praxis genannt wird, also habe ich Schwierigkeiten, es sogar zu googeln.Was ist eine Zeichenkette, die zur Kompilierzeit buchstäblich durch einen Wert ersetzt wird?

Ich denke an eine Zeichenfolge, die buchstäblich nur ein anderes Stück Text bedeutet. Wie meine Zeichenfolge ist KNOTS_PER_MILLIMETER, ich möchte in der Lage sein zu sagen, dass das ist 0,00194384 und dann einfach KNOTS_PER_MILLIMETER irgendwo in meinem Code anstelle von 0,00194384 eingeben. Dies würde mir auch erlauben, diesen Wert zu ändern, wenn ich muss.

Danke!

Bearbeiten: Realisiert Ich bin im Wesentlichen auf der Suche nach #define in C# zu implementieren.

+0

eine 'const' Definition? – ryanyuyu

+3

['const'] (https://msdn.microsoft.com/en-us/library/e6w8fe1b.aspx) ist das Schlüsselwort, nach dem Sie suchen. Beachten Sie, dass Konstanten zu einer Klasse gehören. Wenn Sie also innerhalb derselben Klasse sind, können Sie nur den "Namen" verwenden, aber außerhalb dieser Klasse müssen Sie den Klassennamen angeben. Wenn Sie nach Makroersatz suchen, wie C++ über '# DEFINE' verfügt, gibt es in C# keinen solchen Mechanismus. –

+0

Ahhh Ich habe gerade gemerkt, woran ich mich erinnere, aber ich weiß immer noch nicht, ob es in C# verfügbar ist. Ich möchte im Wesentlichen eine #define wie in C oder C++ machen. Ich habe meine Frage bearbeitet, um das zu reflektieren. – ThePartyTurtle

Antwort

2

Ein Textabschnitt, der einem anderen Textabschnitt zugeordnet wird, wird als Makro bezeichnet. Und C# hat sie nicht.

Aber es gibt ein spezielles Tool, das für Ihre Aufgabe geeignet sein könnte - Konstanten.

public class Constants 
{ 
    public const double KNOTS_PER_MILLIMETER = 0.00194384; 
} 


// in code: 
var knots = millimeters * Constants.KNOTS_PER_MILLIMETER; 
+0

Ahh Ich erinnerte mich gerade daran, dass ich eine #defineartige Situation von C oder C++ dachte. Makros, du hast recht! Danke dafür und für den Vorschlag. – ThePartyTurtle

+1

@ThePartyTurtle: Denken Sie daran, dass Sie in C# 'CamelCase' für Konstanten verwenden, nicht' SHOUTY_SNAKE_CASE'. Du willst 'KnotsPerMillimeter'. –

+0

Ich wollte natürlich 'PascalCase' sagen. 'camelCase' beginnt mit einem kleinen Buchstaben. –

Verwandte Themen