#c# #string
#c# #строка
Вопрос:
Я пытался использовать дословные строки для создания строки, которую я буду использовать в качестве ключа для ссылки на значение в NameValueCollection.
Строка, которую я хочу, это \storagelocal
, поэтому я создаю дословную строку
string key = @"\storagelocal";
Позже я использую его как ключ в коллекции NameValue, подобной этой
string value = Settings[key];
Когда я отлаживаю приведенный выше код и смотрю на ключ, он отображается \\storage\local
в формате escape-последовательности. Поскольку это не тот ключ, который указан в моих настройках, я не получаю значение.
Пожалуйста, помогите мне понять, как я могу использовать в \storagelocal
качестве ключа в своей коллекции.
Комментарии:
1. Я не уверен, что понимаю проблему, печатное представление в отладчике не совпадает с фактической строкой — оно должно отображать escape-последовательности. Это нормальное и ожидаемое поведение.
2. Это отладчик, который показывает ваши значения такими
\\storage\local
, какими они есть\storagelocal
на самом деле, поэтому проблема в другом месте
Ответ №1:
\\ — это просто представление отладчика (с экранированными обратными косыми чертами). Это ожидаемое поведение. Вы можете проверить его работу, используя следующий пример:
string value = "Some value";
Settings[@"\storagelocal"] = value;
string value1 = Settings[@"\storagelocal"];
string value2 = Settings["\\storage\local"];
Оба значения1 и значение2 будут иметь одинаковый результат, который является «Некоторым значением»