556 / 1417 / 38
Регистрация: 08.01.2017
Сообщений: 6,993
|
||||||
1 | ||||||
Как привести (состыковать) разные типы из разных классов (исп в качестве выходного параметра в методе)12.01.2018, 20:52. Показов 1173. Ответов 7
Метки нет (Все метки)
Вопрос состоит в том как максимально просто заставить работать такой неправильный код. Самое простое решение использовать в качестве параметра не структуру, а массив. Или использовать структуру одного типа (из одного из классов). А как быть если хочется использовать именно две структуры из разных классов? Нужно определить собственный оператор приведения типа? Или как-то иначе можно?
Две структуры Sl и Sp из двух классов по сути определены одинаково. Но формально это разные типы. Вот пример кода: Кликните здесь для просмотра всего текста
0
|
12.01.2018, 20:52 | |
Ответы с готовыми решениями:
7
Как сделать разные типы возвращаемых значений в одном методе Разные типы в обобщенном методе Как не писать один и тот же код, для функции, принимающей разные типы данных в качестве аргумента Написать функцию, имеющую одну реализацию, но принимающую в качестве аргументов разные типы |
1519 / 478 / 126
Регистрация: 09.01.2018
Сообщений: 1,233
|
||||||
12.01.2018, 21:07 | 3 | |||||
titan4ik, Мешанина у вас какая то, две структуры из двух классов. Класс это класс, структура это структура.
вот вам примерчик с вашими структурами:
1
|
556 / 1417 / 38
Регистрация: 08.01.2017
Сообщений: 6,993
|
|
12.01.2018, 21:57 [ТС] | 4 |
Да, похоже, что практически незачем. Просто удивился какие трудности возникают в этом слуаче, если отойти от базовых типов. С массивами, например, никаких проблем. Массив он и в Африке массив.
Но теоретический интерес к проблеме остался) Добавлено через 3 минуты Да, но в качестве параметра метода с модификатором out конструкция такого рода (Sp)sl не работает. Выдается сообщение, что "Аргумент ref или out должен быть переменной, которой можно присвоить значение." Добавлено через 4 минуты Представьте, что один класс определяет некий расчет. Результат расчета - out параметр метода этого класса - структура, определенная в данном классе. А вызывается этот метод в другом классе. Как в этом случае вызвать метод, если не использовать структуру из первого класса? Вот в чем был вопрос.
0
|
556 / 1417 / 38
Регистрация: 08.01.2017
Сообщений: 6,993
|
|
12.01.2018, 22:14 [ТС] | 6 |
Понятно. Ок. Буду считать, что такой путь правильный. Спасибо.
Подобные вопросы возникают, поскольку c# предоставляет массу разных вариантов. А как выбрать совокупность тех решений, которые более-менее лежат в области разумной целесообразности? Для этого нужно обладать обширными знаниями и хорошим опытом. Я как-то задавал вопрос по стандартной (некой рабочей) архитектуре программы для инженерного расчета. Но ответа не получил. Пока не понятно и что почитать на эту тему.
0
|
1519 / 478 / 126
Регистрация: 09.01.2018
Сообщений: 1,233
|
||||||
12.01.2018, 23:01 | 7 | |||||
Да, с out это не сработает. Значит нужно сначала получить результат, а потом привести его к нужному типу. Но тут на самом деле вопрос, зачем это нужно? Разве что только в образовательных целях. Можно организовать что то вроде этого:
1
|
556 / 1417 / 38
Регистрация: 08.01.2017
Сообщений: 6,993
|
|
12.01.2018, 23:24 [ТС] | 8 |
Это немножко про другое. Это убеждает ещё раз только в том, что проще всего использовать тип структуры класса "Отправителя" в лоб - напрямую в нужном классе, где вызывается метод.
Ок. Спасибо.
0
|
12.01.2018, 23:24 | |
12.01.2018, 23:24 | |
Помогаю со студенческими работами здесь
8
Передача разных конкретных типов перечисления в один метод в качестве параметра Написать программу для функции, которая будет получать в качестве параметра объект одного из классов Философия. Можете привести примеры разных классов, в которых реализуется один и тот же интерфейс? Как использовать в команде join в качестве выходного разделителя табуляцию? Передача класса как параметра в методе Как привести типы в соответствие функции? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |