8 / 8 / 2
Регистрация: 14.01.2012
Сообщений: 60
|
|
1 | |
Унаследовать класс, чтобы методы были одни и теже, но типы данных разные19.02.2012, 00:41. Показов 2201. Ответов 18
Метки нет (Все метки)
Вот, к примеру, есть у меня класс который хранит в себе char поля, и мне нужен такой же класс, только вместо char он будет содержать string. Методы одни и теже, но типы данных разные.
Я правильно понимаю что наследование тут не поможет? Неужели весь класс надо переписывать заново?
0
|
19.02.2012, 00:41 | |
Ответы с готовыми решениями:
18
Можно ли вложить класс в другой класс чтобы были доступны приватные методы первого класса Унаследовать класс, но так, чтобы не знать его типы Надо, чтобы разные ссылки имели разные цвета и чтобы при наведении на них мышой также были разные цвета. TabControl - сделать так, чтобы на первой странице были одни элементы, а на другой были другие элементы |
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
19.02.2012, 01:53 | 2 |
Snowy, да, надо переписывать.
0
|
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 7
|
|
19.02.2012, 02:32 | 3 |
а var не поможет?
0
|
12 / 12 / 3
Регистрация: 30.11.2011
Сообщений: 76
|
|
19.02.2012, 03:48 | 4 |
По сути, это делается через обобщенные классы или обобщенные интерфейсы
1
|
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
|
|
19.02.2012, 10:13 | 5 |
var - это синтаксический сахар для компилятора. В рантайме никаких var'ов нет.
Теоретически можно через dynamic, но это слишком для такой задачи. Лучший вариант - как посоветовал Тапкожуй: через обобщение.
1
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
19.02.2012, 10:43 | 6 |
Хм... это конечно глупо немного, но если в классе ВСЕ char нужно заменить на string, то можно копирнуть в word или akelPad и использовать Поиск-Замену. Это конечно немного грубо)) Но когда-то мне помогло.
0
|
19.02.2012, 18:03 | 7 |
А ты приведи пример таких классов, у которых поля разных типов, но все методы одинаковые. А то вопрос сомнения вызывает.
Добавлено через 47 секунд В студии это можно сделать минуя Word.
1
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
19.02.2012, 18:04 | 8 |
Незнал, но вобщем это не вариант наверно)
0
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|
19.02.2012, 18:09 | 10 |
Наверное всётаки Ctrl + H.
2
|
19.02.2012, 18:11 | 11 |
Ну да, я просто всегда Ctrl + F жму и переключаю (банально не знал, да и пофиг было, и так не напрягало). А ещё самая убойная комбинация есть, которую игнорирует большинство выкладывающих код - это Ctrl + E, D.
2
|
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
|
|
19.02.2012, 18:15 | 12 |
0
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
19.02.2012, 18:16 | 13 |
Об этом я тоже не слышал, зачем это?
Добавлено через 19 секунд Кажется понял)) Действительно удобно! P.S. Вы правы, её игнорируют
0
|
8 / 8 / 2
Регистрация: 14.01.2012
Сообщений: 60
|
|
22.02.2012, 19:35 [ТС] | 14 |
Casper-SC,
К примеру стандартные Point и FPoint. Кстати, интересно чем они приходятся друг другу...
0
|
52 / 45 / 4
Регистрация: 07.10.2010
Сообщений: 95
|
|
24.02.2012, 02:51 | 15 |
Почему тут вариант с внутренним типом данных не предложили?
То есть сами данные хранятся в внутреннем типе. Все операции выполняются с внутренним типом. И есть поле(метод) принимающий данные. Получается вместо того, что бы переписывать весь класс, можно перегрузить метод преобразования входных данных во внутриние.
0
|
86 / 54 / 15
Регистрация: 01.10.2010
Сообщений: 492
|
|
24.02.2012, 03:13 | 16 |
как вариант в первом классе может можно string использовать длиной в 1 символ?
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
||||||
24.02.2012, 04:31 | 17 | |||||
Сообщение было отмечено как решение
Решение
неужели так сложно подумать? сказали же использовать ОБОБЩЕННЫЕ ИНТЕРФЕЙСЫ, а базовую логику работы вынести в базовый обобщенный класс который наследует обобщенный интерфейс и все будет как хочет TC
вот пример
3
|
52 / 45 / 4
Регистрация: 07.10.2010
Сообщений: 95
|
|||||||||||
24.02.2012, 14:17 | 18 | ||||||||||
А ни чего, что в коде есть такие строчки
И все вернется к
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
24.02.2012, 20:08 | 19 |
Учите, что такое наследование и програмные интерфейсы для чего оно нужно
P. S. в качестве "базового абстрактного класса" в моем коде выступает IMethods<T>
0
|
24.02.2012, 20:08 | |
24.02.2012, 20:08 | |
Помогаю со студенческими работами здесь
19
Переписать предложение так чтобы были одни гласные 2 DataGridViev показывают одни и теже колонки Вылазят постоянно одни и теже банеры (хром) Повторяется рандом, выводит одни и теже числа в цикле for i to Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |