Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 5

Превращение строки в ссылку на объект

14.08.2017, 15:02. Показов 3334. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, вопрос может простой,а может это и не возможно.. Искал, но ничего особо не нашел по этому поводу, вероятно не понимаю как сформулировать вопрос. Суть:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    class Program
    {
        static void Main(string[] args)
        {                     
            text text1 = new text(); //создаем экземпляры
            text text2 = new text();
            text text3 = new text();
            text text4 = new text();
            text text5 = new text();
 
            string str = "text3";
            Console.WriteLine(text1.val); //обращаемся к полям экземпляров
            Console.WriteLine(str.val); //Я понимаю, что эта запись - бред, но как то можно использовать строку как имя экземпляра?
        }
    }
    
    class text
    {
        public string val = "TEST";
    }
Думаю из примера понятно, что я хочу. То есть например получить строку, а потом как то использовать её как ссылку на экземпляр.. То есть в итоге, например, запускать цикл, брать счетчик из цикла, его значение склеивать со строкой, например my_obj = "text" + i.ToString() , а потом как то обращаться к полю (value) экземпляра, типа my_obj.value = "..."

Заранее извиняюсь, за такое сумбурное содержания вопроса, но надеюсь он понятен. И Благодарю за ответ)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2017, 15:02
Ответы с готовыми решениями:

Конвертирование строки в ссылку на объект
здравствуйте, вот такой простой вопрос есть) мне нужно сохранять ссылки на объекты в файле, затем при старте приложения прочитывать...

Превращение JSON в объект
Нужно получить объект из строки String, в которой находится информация в виде JSON. Вот например из такой строки: { ...

Зачем при перегрузке оператора >> в параметр включать ссылку на объект, а не сам объект?
Зачем в параметры функции включать ссылку на объект: istream &operator>>(istream &stream, myclass &ob) Почему не работает так:...

8
44 / 45 / 41
Регистрация: 28.06.2017
Сообщений: 133
14.08.2017, 16:26
Как вариант, юзай рефлексию
1
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
14.08.2017, 16:32
Цитата Сообщение от Taurusfk Посмотреть сообщение
Как вариант, юзай рефлексию
Ему листа обычного хватит
0
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 5
14.08.2017, 17:11  [ТС]
Вот что находил, это отсылки к рефлексии, но все равно не понял, как через содержания строки обратиться к объекту. Попробовал что то навроде
typeof(ИмяКласса).GetField("ИмяПоля").Se tValue(ИмяЭкземпляра, "ЗначениеКотороеЗадаю")

Так получается использовать значение строковой переменной как имя поля экземпляра. А как можно сделать, что бы значение строковой переменной можно было использовать как имя самого экземпляра?
0
44 / 45 / 41
Регистрация: 28.06.2017
Сообщений: 133
14.08.2017, 17:30
lucky7, Не проще ли сделать какую то коллекцию объектов и работать с ней, как и говорилось выше, List<Text>?

Добавлено через 15 минут
lucky7,

То что первое пришло в голову.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    class Program
    {
        static void Main(string[] args)
        {
            List<Text> list = new List<Text>();
            for (int i=0; i<5;i++)
            list.Add(new Text(i.ToString()));                      
 
            Console.WriteLine(list[3].Val); //обращаемся к полям экземпляров                        
            Console.ReadKey();
        }
    }
 
    class Text
    {
        private string val;
        public string Val
        {
            set { val = value; }
            get { return val; }
        }
        public Text(string str)
        {
            val = "test"+str;
        }
    }
1
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 5
14.08.2017, 20:25  [ТС]
Дело в том, что часть кода, где создается экземпляр объекта авто-генерируется (это делает приложение-дизайнер одной из системы отчетов). По этому, так по простому я не смогу создать коллекцию этих объектов. Получается есть возможность работать только уже с созданными экземплярами.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
14.08.2017, 21:04
C#
1
2
3
4
5
6
7
8
9
Dictionary<string, text> texts = new Dictionary<string, text>();
texts["text1"] = new text();
texts["text2"] = new text();
texts["text3"] = new text();
texts["text4"] = new text();
texts["text5"] = new text();
 
string str = "text3";
Console.WriteLine(texts[str].val);
1
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 5
15.08.2017, 06:59  [ТС]
Someone007, Да, спасибо, как вариант можно эти объекты поместить в dictionary. И всё же, как то можно решить задачу без создания доп. структур?
0
Эксперт .NET
 Аватар для Usaga
14138 / 9366 / 1350
Регистрация: 21.01.2016
Сообщений: 35,217
15.08.2017, 10:24
Цитата Сообщение от lucky7 Посмотреть сообщение
И всё же, как то можно решить задачу без создания доп. структур?
Нет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2017, 10:24
Помогаю со студенческими работами здесь

Как преобразовать ссылку на объект в указатель на этот объект?
Как преобразовать ссылку на объект в указатель на этот объект? Буду благодарен за помощь.

Clojure Реверс строки и превращение строки в число
1. Например &quot;3497&quot; в &quot;7943&quot; ... 2. Например &quot;4&quot; в число 4 ...

Превращение строки в другую
С помощью методов массива split, join, push, pop, shift, unshift, splice превратите строку 'Не люблю программировать на Pascal' в строку 'Я...

Превращение строки в название исполняемой функции
Доброго времени суток. Появился вопрос. Предположим есть TextBox, кнопка и набор функций: void text1(){ ...

Требует ссылку на объект
Отчаянная попытка научиться работать с Windows Form. Пыталась из боксов инициализировать числовые переменные: float beta =...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru