Mam dużą klasę C#, która zawiera tylko pola public const string
. Jednak w jednym przypadku Próbuję złączyć ciąg i wartość enum w polu const string
, tak:Łączenie ciągów stałych i wyliczeń
public const string GET_VALUES = "SELECT * FROM [tbl] WHERE [id] = " + Enum.Val;
Jednak uzyskać ten błąd kompilatora:
'Namespace.SqlStatements.GET_VALUES' must be constant
wiem mogłem upuść klauzulę const
, ale chciałbym, aby wszystkie pola w tej klasie były spójne. Czy jest możliwe łączenie ciąg ciąg i wyliczenie w C#?
Możesz użyć 'public readonly' ... Nie możesz użyć' const', ponieważ ciąg const musi być znany podczas kompilacji. Łączenie ciągów z wartością wyliczenia wymaga transformacji łańcuchowej tej wartości wyliczeniowej - coś, co dzieje się podczas wykonywania, a nie podczas kompilacji programu. – elgonzo
@elgonzo Dobry pomysł, ale to nie pasuje do konsystencji, o której wspomniałem, którą starałem się zachować. Jeśli nie ma żadnej innej metody, to "do odczytu" będzie drogą do zrobienia. –
Rozszerzyłem swój pierwszy komentarz. Zobacz, dlaczego nie możesz użyć 'const' w tym przypadku ... – elgonzo