0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52
1

Создание объекта зная тип другого объекта

02.04.2019, 15:48. Показов 2424. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
К примеру, у меня есть абстрактный класс Abs, от которого унаследован класс Class1
У меня есть объект obj с типом Class1.
Как имея этот объект создать другой, такого же типа?



C#
1
2
3
4
5
6
7
public void create()
 
Class1 obj = new Class1();
 
Abs obj1 = new obj();
 
}
Код конечно не правильны, но он хорошо отображает мой вопрос
0
Лучшие ответы (1)
02.04.2019, 15:48
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2019, 15:48
Ответы с готовыми решениями:

Тип объекта
Здравствуйте, что такое конструктор сообщающий тип объекта? И что здесь подразумевается под типом объекта?

Переменная хранящая тип объекта
В классе создается переменная, которая имеет заранее неизвестный тип. (он может быть Image,Bitmap). То, каким будет эта переменная должен...

Как взаимодействовать со свойствами объекта из другого класса?
вот код для примера: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

3
Эксперт .NET
 Аватар для Даценд
5877 / 4754 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
02.04.2019, 16:16 2
C#
1
Abs obj1 = new Class1();
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,497
Записей в блоге: 1
02.04.2019, 23:44 3
Лучший ответ Сообщение было отмечено Кот1223432234 как решение

Решение

Кот1223432234, если я правильно понял вопрос, то
C#
1
Abs obj1 = (Abs)Activator.CreateInstance(obj.GetType());
Но прежде чем начнешь применять данное решение поясни зачем это понадобилось потому что возможно есть более правильное решение.
1
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52
15.04.2019, 18:14  [ТС] 4
Я уже решил свой вопрос. Вообщем, я делал игру, в которой всё разеделно на плитки(типо как Терария, можешь в инете чекнуть, если не знаешь). У каждой плитки был свой класс, который был унаследован от абстрактного класса плиток. Мне нужно было создавать плитку нужного класса по "индексу". Но как это сделать? Я решил создать массив, в котором будут храниться объекты с нужным типом плиток, и по ним уже каким то образом создавать нужные плитки. Потом я уже понял, что можно просто постоянно создавать копию объекта из массива, которая уже будет нужного типа. я хз, понятно ли я объяснил, но думаю основную суть тут улавить можно.
P.S Изначально рассматривался вариант с активатором, который предложил ты. Но тут как бы сразу было видно, что подход не тот. Но всё равно, спасибо за ответ
0
15.04.2019, 18:14
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2019, 18:14
Помогаю со студенческими работами здесь

Как создавать источник данных в виде объекта и связывать столбцы со свойствами объекта
Пытаюсь сделать DataGridView с данными из List'a. В дизайнере формы в опциях DataGridView задал источник данных - класс в котором...

Как проверить тип созданного объекта?
Как проверить тип созданного объекта?

Как определить тип передаваемого объекта
Есть компонент с названием simpleOpenGlControl. Его нужно передать в функцию, но такое: public static void sphere(simpleOpenGlControl ...

Видимость объекта, объявленного в одном методе, из другого метода
Добрый день! В методе A объявляю объект DataSet. Затем из метода А мне нужно многократно вызывать вспомогательный метод Б, ...

Вычислить периметр объекта-окружности и объекта-многоугольника
Создать два объекта класса, вписанных в окружность радиуса R. Вычислить периметр объекта-окружности и объекта-многоугольника. Сторона...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Linux API: Полное руководство
hw_wired 08.02.2025
Linux API – это низкоуровневый программный интерфейс, обеспечивающий взаимодействие пользовательских приложений с ядром операционной системы. Он включает набор системных вызовов, библиотечных функций. . .
Асинхронное программировани­­­­­е и эмуляция async/await в C (СИ)
hw_wired 08.02.2025
Язык программирования C, несмотря на свой возраст, предоставляет неплохие средства для реализации асинхронных операций, позволяя создавать эффективные решения для обработки параллельных задач. В. . .
Как сгенерировать случайное число в указанном диапазоне в JavaScript
bytestream 08.02.2025
В JavaScript генерация случайных чисел основана на детерминированном алгоритме, который создает последовательность псевдослучайных значений. Встроенный метод Math. random() возвращает псевдослучайное. . .
Как получить список всех таблиц в PostgreSQL
bytestream 08.02.2025
PostgreSQL предлагает несколько методов для получения списка таблиц в базе данных. Наиболее распространенный способ - использование системного каталога pg_tables, который содержит информацию обо всех. . .
Java Spring для начинающих
bytestream 08.02.2025
Spring Framework - это универсальное решение для создания корпоративных Java-приложений. Он предоставляет комплексную программную и конфигурационную модель для современных приложений на Java. Spring. . .
Асинхронное программировани­­­­­­е и async/await в Visual Basic
bytestream 08.02.2025
В основе асинхронного программирования в Visual Basic лежит концепция неблокирующего выполнения операций. Когда программа встречает длительную операцию, например, чтение большого файла или запрос к. . .
Async/await и асинхронное программировани­­е в Delphi
bytestream 08.02.2025
Асинхронное программирование является неотъемлемой частью разработки современных приложений, позволяя создавать отзывчивые и эффективные программы. В Delphi реализация асинхронности опирается на. . .
Асинхронное программировани­­­­­е и async/await в C#
bytestream 08.02.2025
Асинхронное программирование - концепция, позволяющая приложениям эффективно выполнять длительные операции без блокировки основного потока выполнения. В контексте современной разработки на C# это. . .
Асинхронное программировани­­­­­е и горутины/каналы в Go
bytestream 08.02.2025
Язык Go изначально разрабатывался с учетом современных многоядерных процессоров и необходимости эффективного параллельного выполнения задач. В отличие от традиционных подходов к асинхронному. . .
Как восстановить stash в Git
hw_wired 08.02.2025
Git stash - это средство для временного сохранения изменений в рабочей директории. В процессе разработки часто возникают ситуации, когда нужно быстро переключиться на другую задачу, но текущие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru