Если у меня есть класс с именем MyProgram
, есть ли способ получить « MyProgram » в виде строки?
c#
reflection
deltanovember
источник
источник
nameof
оператор.Я хотел бросить это для хорошей меры. Я думаю, что способ размещения @micahtan является предпочтительным.
источник
nameof(MyProgram)
.С C # 6.0 вы можете использовать
nameof
оператор:источник
Хотя ответ Микахтана хорош, он не будет работать в статическом методе. Если вы хотите получить имя текущего типа, этот должен работать везде:
источник
Для справки, если у вас есть тип, который наследуется от другого, вы также можете использовать
источник
Если вам это нужно в производных классах, вы можете поместить этот код в базовый класс:
Затем вы можете получить имя в производном классе. Возвращает имя производного класса. Конечно, при использовании нового ключевого слова "nameof" не будет необходимости, как этот сорт действует.
Кроме того, вы можете определить это:
А затем используйте как это:
источник
Использовать этот
Допустим, что Application Test.exe запущен и функция foo () в form1 [в основном это класс form1 ], тогда приведенный выше код сгенерирует ответ ниже.
Это вернется.
для имени функции:
вернусь
Обратите внимание, если вы хотите использовать это в исключительной ситуации:
источник
[Nullable(2)]
поэтому вы получаете предупреждение, когда проверка нуля активна.this
может быть опущено Все, что вам нужно, чтобы получить имя текущего класса:источник
Получить Текущее имя класса Asp.net
источник
[Nullable(2)]
поэтому вы получаете предупреждение, когда проверка нуля активна.