Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Возможно ли получить имя переменной в виде строки? / 25 сообщений из 40, страница 1 из 2
04.04.2008, 21:52
    #35237082
Automater
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Пример:

string peremennaja = "aaa";
string variable_name;

Как получить в переменной variable_name строку "peremennaja", т.е. узнать имя другой переменной?
...
Рейтинг: 0 / 0
04.04.2008, 22:12
    #35237103
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Курите в сторону System.Reflection
...
Рейтинг: 0 / 0
04.04.2008, 22:23
    #35237116
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Никак.
...
Рейтинг: 0 / 0
05.04.2008, 03:31
    #35237261
C#C++
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
AutomaterПример:

string peremennaja = "aaa";
string variable_name;

Как получить в переменной variable_name строку "peremennaja", т.е. узнать имя другой переменной?

Не так давно был уже в точности такой вопрос.

И самый разумный вариант там был
string variable_name = "peremennaja";
...
Рейтинг: 0 / 0
06.04.2008, 11:08
    #35237879
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Automater
Как получить в переменной variable_name строку "peremennaja", т.е. узнать имя другой переменной?

Не могу представить даже, откуда может возникнуть такой вопрос... - просвятите, пожалуйста...
Абсолютно непонятно зачем это практически может понадобиться... Может быть Ваша проблема решается подругому?
...
Рейтинг: 0 / 0
06.04.2008, 12:21
    #35237929
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
МСУНикак.


class Program
{
static void Main(string[] args)
{
CExample excemple = new CExample();

System.Reflection.PropertyInfo[] properties =
excemple.GetType().GetProperties();

FieldInfo[] fields = excemple.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

foreach (FieldInfo fi in fields)
Console.WriteLine(fi.Name);

Console.ReadLine();
}
}
public class CExample
{
private string privateValue = "private";
protected string protectedValue = "protected";
}
...
Рейтинг: 0 / 0
06.04.2008, 12:23
    #35237931
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
При всем уважении к глубоким знаниям MCY - зачем-жек стол категорично?
...
Рейтинг: 0 / 0
06.04.2008, 12:30
    #35237939
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
SQL_LamerПри всем уважении к глубоким знаниям MCY - зачем-жек стол категорично?
FieldInfo.Name - Gets the name of the current member
P.S. Разницу члена (методы, поля, делегаты (указаетели на методы), конструкторы, финализаторы и пр.) и разницу переменной , которую можно объявить в члене, понимаете? ;)
...
Рейтинг: 0 / 0
06.04.2008, 12:37
    #35237949
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
МСУ SQL_LamerПри всем уважении к глубоким знаниям MCY - зачем-жек стол категорично?
FieldInfo.Name - Gets the name of the current member
P.S. Разницу члена (методы, поля, делегаты (указаетели на методы), конструкторы, финализаторы и пр.) и разницу переменной , которую можно объявить в члене, понимаете? ;)

В ваших словах сквозит ирония (((
Нет, я вообще ничего не понимаю
О, горе мне...
...
Рейтинг: 0 / 0
06.04.2008, 12:40
    #35237954
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
SQL_Lamer
Не расстраивайтесь, купите книжку себе лучше ;)
...
Рейтинг: 0 / 0
06.04.2008, 12:43
    #35237957
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
МСУ SQL_Lamer
Не расстраивайтесь, купите книжку себе лучше ;)

Если я прочитаю все те книги, что купил себе за последний год,
то Дональду Кнуту только и останется, что нервно покуривать в стороне
...
Рейтинг: 0 / 0
06.04.2008, 12:48
    #35237962
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Единственное, что мне приходит в голову, по поводу сабжа, что автору надо вести лог, в котором он хочет показывать и имя переменной, и ее значение. И вместо того, чтобы просто

Код: plaintext
string LogMessage = string.Format("peremennaya = {0}", peremennaya );

он ищет чего-то волшебного.
...
Рейтинг: 0 / 0
06.04.2008, 15:53
    #35238077
C#C++
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
SQL_Lamer МСУНикак.


class Program
{
static void Main(string[] args)
{
CExample excemple = new CExample();

System.Reflection.PropertyInfo[] properties =
excemple.GetType().GetProperties();

FieldInfo[] fields = excemple.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

foreach (FieldInfo fi in fields)
Console.WriteLine(fi.Name);

Console.ReadLine();
}
}
public class CExample
{
private string privateValue = "private";
protected string protectedValue = "protected";
}

SQL_Lamer, понимаете, в чем тут штука: поля классов (и их имена в том числе) - это информация, связанная с классом, и отражение может ее добыть из класса (это все хранится в MSIL). А локальная переменная функции ни с чем таким не связана, поэтому ее имя ничем получить не получится (в MSIL ее нет). Вот такая разница.
...
Рейтинг: 0 / 0
07.04.2008, 09:32
    #35238661
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
C#C++ SQL_Lamer МСУНикак.


class Program
{
static void Main(string[] args)
{
CExample excemple = new CExample();

System.Reflection.PropertyInfo[] properties =
excemple.GetType().GetProperties();

FieldInfo[] fields = excemple.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

foreach (FieldInfo fi in fields)
Console.WriteLine(fi.Name);

Console.ReadLine();
}
}
public class CExample
{
private string privateValue = "private";
protected string protectedValue = "protected";
}

SQL_Lamer, понимаете, в чем тут штука: поля классов (и их имена в том числе) - это информация, связанная с классом, и отражение может ее добыть из класса (это все хранится в MSIL). А локальная переменная функции ни с чем таким не связана, поэтому ее имя ничем получить не получится (в MSIL ее нет). Вот такая разница.


Что-же вы на меня накинулись с критикой,
понимаю я это, просто выкрутиться-то всегда можно
Об этом речь
...
Рейтинг: 0 / 0
07.04.2008, 09:35
    #35238667
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
SQL_LamerЧто-же вы на меня накинулись с критикой,
понимаю я это, просто выкрутиться-то всегда можно
Об этом речь
Да Вы что, кто ж на Вас накинулся-то? Наоборот, коллега C#C++ растолковывает Вам, - что это и как оно работает. А выкрутиться всегода можно, тут Вы правы.
P.S. Только стоит ли выкручиваться? Я просто не представляю, для чего такое могло понадобиться топиккастеру..
...
Рейтинг: 0 / 0
07.04.2008, 09:38
    #35238673
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
МСУ SQL_LamerЧто-же вы на меня накинулись с критикой,
понимаю я это, просто выкрутиться-то всегда можно
Об этом речь
Да Вы что, кто ж на Вас накинулся-то? Наоборот, коллега C#C++ растолковывает Вам, - что это и как оно работает. А выкрутиться всегода можно, тут Вы правы.
P.S. Только стоит ли выкручиваться? Я просто не представляю, для чего такое могло понадобиться топиккастеру..

Я, если честно, тоже не представляю, да и сам топиккастер пропал, так что чего-уж... :)
...
Рейтинг: 0 / 0
07.04.2008, 11:23
    #35239013
C#C++
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
SQL_Lamer МСУ SQL_LamerЧто-же вы на меня накинулись с критикой,
понимаю я это, просто выкрутиться-то всегда можно
Об этом речь
Да Вы что, кто ж на Вас накинулся-то? Наоборот, коллега C#C++ растолковывает Вам, - что это и как оно работает. А выкрутиться всегода можно, тут Вы правы.
P.S. Только стоит ли выкручиваться? Я просто не представляю, для чего такое могло понадобиться топиккастеру..

Я, если честно, тоже не представляю, да и сам топиккастер пропал, так что чего-уж... :)

Топиккастер наверно тоже понял, что ему это незачем )))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.07.2017, 14:57
    #39487589
LOD
LOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
AutomaterПример:

string peremennaja = "aaa";
string variable_name;

Как получить в переменной variable_name строку "peremennaja", т.е. узнать имя другой переменной?

Код: plaintext
1.
2.
3.
4.
#define NAME_OF_VAR(VAR) #VAR

string peremennaja = "aaa";
string variable_name = NAME_OF_VAR(peremennaja);



Макрос на этапе компиляции автоматически заменится на "peremennaja". Преимущество использования макроса по сравнению с записью строки "peremennaja" в том, что при изменении имени переменной вы не сможете забыть поменять строку, и компилятор вам сразу же напомнит об этом. Таким образом вы гарантированно получите правильное имя переменной.
...
Рейтинг: 0 / 0
12.07.2017, 15:04
    #39487599
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
LODМакрос на этапе компиляции ...
В C# нет макросов, ты с С++ перепутал.
...
Рейтинг: 0 / 0
12.07.2017, 16:43
    #39487716
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
nameof()
...
Рейтинг: 0 / 0
12.07.2017, 18:06
    #39487784
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Roman Mejtesnameof()

это в c#? в какой версии?
...
Рейтинг: 0 / 0
12.07.2017, 20:20
    #39487855
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
Ролг ХупинRoman Mejtesnameof()

это в c#? в какой версии?

В шестой.
...
Рейтинг: 0 / 0
13.07.2017, 12:16
    #39488231
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
hVostt,
Хм, интересно, а что делать с именем переменной. которую csc или jit ликвидируют в ходе оптимизации?
...
Рейтинг: 0 / 0
13.07.2017, 12:31
    #39488259
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
ЕвгенийВ,

Ну ты же не обращаешься к этой переменной по имени.
А свойства, к примеру, оптимизатор не ликвидирует
...
Рейтинг: 0 / 0
13.07.2017, 14:21
    #39488406
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить имя переменной в виде строки?
ЕвгенийВhVostt,
Хм, интересно, а что делать с именем переменной. которую csc или jit ликвидируют в ходе оптимизации?

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


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