Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/65: Рейтинг темы: голосов - 65, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 6
1

Как узнать имя класса

05.05.2013, 02:54. Показов 12362. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем проблема в том, что нужно в функции SampleFunction получить имя класса "nameclass"?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public class SampleClass
{
    public string SampleFunction
    {
        return /*Что тут написать, чтоб получить nameclass?*/
    }
}
 
public void Main
{
    SampleClass nameclass = new SampleClass();
    string s = nameclass.SampleFunction();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2013, 02:54
Ответы с готовыми решениями:

Как узнать имя процесса, зная имя программы?
Здравствуйте, подскажите пожалуйста, как узнать имя процесса выполняемой программы, зная имя этой...

Можно ли во время выполнения "извлечь" имя приложения, имя класса, имя исполняемого метода и пр. ?
или какие-нубдь "квазипеременные" компилятора, позволяющие их использовать?

Как узнать имя любого файла в архиве
У меня есть библиотека Ionic.Utils.Zip.dll Я вот так могу разархивировать файл: using...

Как узнать имя машины на которой запущена программа
Здравствуйте , подскажите пожалуйста как можно узнать имя компьютера но котором запущена программа?

12
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.05.2013, 08:54 2
LastArcane,
C#
1
2
3
4
     public string SampleFunction
    {
        return this.ToString();
    }
0
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 6
05.05.2013, 14:37  [ТС] 3
Цитата Сообщение от Psilon Посмотреть сообщение
LastArcane,
C#
1
2
3
4
     public string SampleFunction
    {
        return this.ToString();
    }
это вернет что-то вроде namespace+SampleClass, а мне бы получить объявленное имя класса nameclass, а не тип

Добавлено через 37 минут
В ообщем проблема решилась просто, передачей в конструктор класса уникального имени и свойством Name только для чтения. Хотя вопрос открыт.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.05.2013, 14:50 4
LastArcane,
C#
1
2
3
4
5
     public string SampleFunction
    {
        string s = ToString().Split('.');
        return s[s.Length-1];
    }
В ООП класс == тип
0
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 6
05.05.2013, 15:28  [ТС] 5
Я конечно понимаю, что все привыкли отвечать шаблонными ответами, но я еще раз повторюсь: мне абсолютно не нужен тип класса, мне нужно имя его переменной, если вообще это возможно. Или как-нибудь вытащить из MSIL кода

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class SampleClass
{
    public string SampleFunction
    {
        return /*Что тут написать?*/
    }
}
 
public void Main
{
    SampleClass cls1 = new SampleClass();
    SampleClass cls2 = new SampleClass();
    SampleClass cls3 = new SampleClass();
 
    string s1 = cls1.SampleFunction(); //Тут надо получить в результате "cls1"
    string s2 = cls2.SampleFunction(); //Тут надо получить в результате "cls2"
    string s3 = cls3.SampleFunction(); //Тут надо получить в результате "cls3"
}
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.05.2013, 20:24 6
LastArcane, афаик это невозможно
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
05.05.2013, 22:19 7
Psilon, Не подводи ты так, но твердил я же, что слаба светлой стороны сила..
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Program m = new Program();
            Console.WriteLine(((object)m).GetType().Name);
            Console.ReadLine();
        }
    }
}
Добавлено через 6 минут

Не по теме:

Ну или ТуСтрингом а потом парсить строку хД

0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.05.2013, 22:26 8
Noob.net, он хочет, чтобы класс знал имена всех созданных экземпляров этого же класса. Имхо это рушит всю идею инкапсуляции => невозможно. Поправь если я не прав.
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
05.05.2013, 22:28 9
Psilon, Прав)

Дружно посоветуем для этой цели использовать поля вроде Name.
Я более чем уверен что достать имена инстансов возможно, но затраченных усилий это не будет стоить. Проще юзать поля.
LastArcane, кстати никакой юзабилити ваша затея не пахнет.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.05.2013, 22:30 10
Noob.net, рефлексию я не рассматривал, так как это явно не уровень автора, тормознуто, глючно... В общем, привет все то, от чего в шарпе так долго отходили
0
Noob.net
05.05.2013, 22:33
  #11

Не по теме:

Psilon, и на чем все в нем построено и чем все пользуются постоянно :D (мое мнение из личного опыта)

0
Psilon
05.05.2013, 22:36
  #12

Не по теме:

Noob.net, сами кишки да, пользуются, а лишний раз в это лезть я бы не стал. Если только всякие полиморфные вирусы не писать. НО вирус, который высвечивает мессаджбокс, что для его работы нужно установить фреймворк, sql server и еще 100500 программ меня очень порадует:)

0
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 6
05.05.2013, 23:34  [ТС] 13
Цитата Сообщение от Noob.net Посмотреть сообщение
Дружно посоветуем для этой цели использовать поля вроде Name.
Цитата Сообщение от LastArcane Посмотреть сообщение
В ообщем проблема решилась просто, передачей в конструктор класса уникального имени и свойством Name только для чтения.
Цитата Сообщение от Noob.net Посмотреть сообщение
кстати никакой юзабилити ваша затея не пахнет
Согласен, просто давно не сидел за шарпом думал может чего нового придумали. Всем спасибо
0
05.05.2013, 23:34
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2013, 23:34
Помогаю со студенческими работами здесь

Как узнать имя пользователя который изменил файл последним?
Как узнать имя пользователя который изменил файл последним? Собственно сабж. Копал MSDN...

Именованный мьютекс - как узнать созданное процессом имя семафора
к примеру (вскрыто Reflector'ом) var mutex = new Mutex(false, "44938b8f"); mutex.WaitOne();...

Если исполняемый файл находится в архиве, как узнать имя этого архива?
Подскажите пожалуйста, если исполняемый файл находится в архиве, как узнать имя этого архива?

Как получить имя класса, которому принадлежит поле
Есть метод с одним out-параметром, принимающим string. Как с помощью рефлексии в этом методе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru