Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
31 / 31 / 8
Регистрация: 05.11.2008
Сообщений: 162
1

Передача объектов в методы.

22.11.2010, 21:57. Показов 1236. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с небольшой проблемой несоответствия типов:
Для нахождения объекта пересечения двух других объектов я создал новый
класс, принимающий 2 объекта типа Figure, и возвращающий
соответственно объект типа Figure (Figure является родительским
классом, для классов Circle и Rectangle). Однако работать с полями,
определенными в классе Rectangle я не могу, так как передаю то я
объект типа Figure. Компилятор и знать не знает, что у меня там
содержится объект Rectangle, вот и матерится на меня. Передавать
объект типа Rectangle я не могу, так как у меня хранится массив
объектов типа Figure. К сожалению не могу никак решить эту проблему.
Если нужно более подробно код, вот весь проект:
Те строки, что закомментированы, как раз и есть реализация моего метода и собственно его вызов. (Классы Kernel и Program)
Код
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2010, 21:57
Ответы с готовыми решениями:

Массив объектов и методы элементов массива
Добрый день, уважаемые форумчане... Создаю массив object, передаю элементам разные объекты, но...

Интерфейс, методы которого принимают список объектов
Добрий день, мне нужна помощь. Я написал интерфейс для ввода и вывода. Выглядит он так - public...

Методы get и set для объектов базового класса
class B:A { B():base(){} public A a; public A aA //нужно определить...

Передача параметра в разные методы
Допустим есть некий параметр x. И так получилось что параметр x,встречается во всех методах. А...

2
129 / 129 / 22
Регистрация: 10.11.2010
Сообщений: 313
22.11.2010, 22:31 2
Лучший ответ Сообщение было отмечено greshnikk как решение

Решение

greshnikk, проверить реальный тип преобразованного объекта можно с помощью конструкции:
C#
1
if (_figure is Rectangle) {}
Преобразовать из базового типа в тип наследника можно путем прямого преобразования типов (есстественно после проверки)
C#
1
if (_figure is Rectangle) {Rectangle _dummy = (Rectangle)_figure;}
1
31 / 31 / 8
Регистрация: 05.11.2008
Сообщений: 162
22.11.2010, 23:47  [ТС] 3
Ну проверка естественно есть, но я ее реализовал немного по-другому:
C#
1
figure[i].GetType().ToString() == "Project1.Rectangle"
А вот явное преобразование типов помогло, программа работает корректно. Спасибо за подсказанный прием.
0
22.11.2010, 23:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2010, 23:47
Помогаю со студенческими работами здесь

Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов?
Есть два объекта класса Квадрат.Необходимо сравнить их по площади заданной свойством. Для этого...

Передача в методы переменных ссылочных типов
Есть класс: class Sample { int i; public Sample(int x) { ...

Методы - передача параметров и описание вне класса
1. вопрос. Есть класс: class Test { private int m_test; public void Calc(int a) ...

Передача объектов методу
Объясните, пожалуйста почему не компилируется код? using System; class Test { int a; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru