Подтвердить что ты не робот

Получение "Присвоение выражения должно быть постоянным", когда оно

Есть ли способ использовать что-то вроде этого:

private const int MaxTextLength = "Text i want to use".Length;

Я думаю, что это было бы более читаемым и менее подверженным ошибкам, чем использование чего-то вроде:

private const int MaxTextLength = 18;

Есть ли способ, чтобы длина текста была источником постоянной переменной?

4b9b3361

Ответ 1

private readonly static int MaxTextLength = "Text i want to use".Length;

Ответ 2

Используйте static readonly вместо const.

Константы должны быть константами времени компиляции

Ответ 3

К сожалению, если вы используете ключевое слово const, значение в правой части '=' должно быть константой времени компиляции. Использование "string".length требует выполнения кода .NET, который может возникать только при запуске приложения, а не во время компиляции.

Вы можете рассмотреть возможность создания поля readonly, а не const.

Ответ 4

Не уверен, почему вы хотите это сделать, но как насчет...

private const string MaxText = "Text i want to use.";

private static int MaxTextLength { get { return MaxText.Length; } }

Ответ 5

Требуется ли значение const? Будет ли статичное чтение только для вашего дела?

private static readonly int MaxTextLength = "Text i want to use".Length;

Это позволит вам написать код аналогично первому примеру.