powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Возможно ли получить имя переменной в виде строки?
15 сообщений из 40, страница 2 из 2
Возможно ли получить имя переменной в виде строки?
    #39488545
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
nameof() - строку вычисленную при компиляции
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39488553
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVostt,
nameof() - строку вычисленную при компиляции

Всё ещё не панимать. ПРимерчик?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39488592
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
hVosttЕвгенийВhVostt,
nameof() - строку вычисленную при компиляции

Всё ещё не панимать. ПРимерчик?
Это в С# 6.0 появилось
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/nameof

https://msdn.microsoft.com/ru-ru/magazine/dn802602.aspx
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39488595
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВhVostt,
nameof() - строку вычисленную при компиляции

Всё ещё не панимать. ПРимерчик?
Не понимать, nameof() работает во время компиляции.
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39488675
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНе понимать, nameof() работает во время компиляции.

Это так. Но и к чему ты клонишь? Пример проблемы можешь привести?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39488915
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВНе понимать, nameof() работает во время компиляции.

Это так. Но и к чему ты клонишь? Пример проблемы можешь привести?

Да нет никакой проблемы, просто код
Код: c#
1.
2.
3.
4.
 string hVostt = null;
            var tmp = nameof(hVostt);
            Console.WriteLine(tmp);
            Console.ReadLine();


в дебаге превращается в
Код: c#
1.
2.
3.
string tmp = "hVostt";
	Console.WriteLine(tmp);
	Console.ReadLine();



а в релизе в
Код: c#
1.
2.
Console.WriteLine("hVostt");
	Console.ReadLine();


От переменной hVostt не осталось и хвоста. Какая польза от того, что она была в рантайме?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489093
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВОт переменной hVostt не осталось и хвоста. Какая польза от того, что она была в рантайме?

Пользы может и никакой. Честно говоря не помню, чтобы я хоть раз применял nameof для локальных переменных. Для аргументов, публичных свойств и методов — да. Они точно не пропадут. А для локальных переменных, зачем вообще это может быть нужно?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489136
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVosttпропущено...


Это так. Но и к чему ты клонишь? Пример проблемы можешь привести?

Да нет никакой проблемы, просто код
Код: c#
1.
2.
3.
4.
 string hVostt = null;
            var tmp = nameof(hVostt);
            Console.WriteLine(tmp);
            Console.ReadLine();



в дебаге превращается в
Код: c#
1.
2.
3.
string tmp = "hVostt";
	Console.WriteLine(tmp);
	Console.ReadLine();




а в релизе в
Код: c#
1.
2.
Console.WriteLine("hVostt");
	Console.ReadLine();



От переменной hVostt не осталось и хвоста. Какая польза от того, что она была в рантайме?Как же не осталось-то? Выделенное осталось.

Польза от nameof - рефакторинг. Это даже скорее не функция, а директива для преобразования идентификатора в строку. Посмотри приведенные выше ссылки, и "Основные варианты использования".
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489164
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreg
Польза от nameof - рефакторинг. Это даже скорее не функция, а директива для преобразования идентификатора в строку. Посмотри приведенные выше ссылки, и "Основные варианты использования".


Благодарю тебя великий учитель!
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489197
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Давай придумаем зачем может быть нужен nameof для локальных переменных (не аргументов функции)?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489209
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВ,

Давай придумаем зачем может быть нужен nameof для локальных переменных (не аргументов функции)? Для учебных, тестовых программ
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489247
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВ,

Давай придумаем зачем может быть нужен nameof для локальных переменных (не аргументов функции)?
Упрощенно, но могут быть какие нибудь сложные формулы
Код: c#
1.
2.
3.
4.
5.
            string hVostt1 = "test1";
            string hVostt2 = "test2";
            string hVostt3 = "test3";

            string logString = $"{nameof(hVostt1)}-{hVostt1};{nameof(hVostt2)}-{hVostt2};{nameof(hVostt3)}-{hVostt3};";



Еще иногда локальные переменные становятся членами классов.
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489315
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВУпрощенно, но могут быть какие нибудь сложные формулы

Компилер в данном случае убрать переменные и сделать logString строковой константой.
Но логировать локальные переменные по именам может быть полезным в юнит-тестах, но... уже есть плагин для Fody, который всё это делает вообще автоматом.

ЕвгенийВЕще иногда локальные переменные становятся членами классов.

В контексте замыкания? Практический смысл на ум приходит?
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489319
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Компилер в данном случае убрать переменные и сделать logString строковой константой.

Если будут действия с переменными, то нет.


hVostt
В контексте замыкания? Практический смысл на ум приходит?
Не факт, что в очередной версии имена переменных будут совпадать с именами автогенерируемого класса.
...
Рейтинг: 0 / 0
Возможно ли получить имя переменной в виде строки?
    #39489331
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНе факт, что в очередной версии имена переменных будут совпадать с именами автогенерируемого класса.

Да эт изначально треш какой-то :) Не стоит привязываться к локальным переменным.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Возможно ли получить имя переменной в виде строки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]