У меня есть набор постоянных строк, которые связаны друг с другом:Могу ли я повторять постоянные строки при объявлении?
private const string tabLevel1 = "\t";
private const string tabLevel2 = "\t\t";
private const string tabLevel3 = "\t\t\t";
...
Я ищу более элегантный способ заявить о них что-то вроде:
private const string tabLevel1 = "\t";
private const string tabLevel2 = REPEAT_STRING(tabLevel1, 2);
private const string tabLevel3 = REPEAT_STRING(tabLevel1, 3);
...
Есть некоторые препроцессоры директивы или каким-либо другим способом достижения этого?
P.S. Я уже знаю, что const string tabLevel2 = tabLevel1 + tabLevel1;
работает, возможно, из-за this. Я ищу общий случай для произвольного n
.
РЕДАКТИРОВАТЬ
Я хотел бы уточнить, почему мне нужно const
и не static readonly
: Константы используются в качестве параметров к собственности декоратора, например, [GridCategory(tabLevel2)]
, и должен быть известен во время компиляции.
Сколько раз вы хотите его повторить? Я не думаю, что это важно. ** constant - это то, что вы должны чувствовать удовлетворенным, даже если вам нужно набирать сотни строк, чтобы объявить их **. «Win32 Constants» - пример. –