Ich habe eine große C# -Klasse, die nur mit public const string
Felder gefüllt ist. Allerdings habe ich in einem Fall bin versucht, einen String und einen Enum-Wert in ein const string
Feld verketten, wie folgt aus:Constate Constant String und Enum
public const string GET_VALUES = "SELECT * FROM [tbl] WHERE [id] = " + Enum.Val;
Allerdings bekomme ich diesen Compiler-Fehler:
'Namespace.SqlStatements.GET_VALUES' must be constant
Ich weiß, ich könnte lösche die const
Klausel, aber ich möchte alle Felder innerhalb dieser Klasse konsistent halten. Ist es möglich, eine konstante Zeichenfolge und eine Enum in C# zu verketten?
Sie können 'public readonly' verwenden ... Sie können' const' nicht verwenden, da eine const-Zeichenfolge zur Kompilierzeit bekannt sein muss. String-Verkettung mit einem Enum-Wert erfordert die String-Transformation dieses Enum-Wertes - etwas, das während der Laufzeit und nicht während der Kompilierung des Programms passiert. – elgonzo
@elgonzo Gute Idee, aber das passt nicht ganz zu der Konsistenz, die ich erwähnt habe, die ich zu behalten versuchte. Wenn es keinen anderen Weg gibt, dann wäre "readonly" der richtige Weg. –
Ich erweiterte meinen ersten Kommentar. Sehen Sie dort, warum Sie in diesem Fall nicht "const" verwenden können ... – elgonzo