![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Rays |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.2.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Помогите разобратся с проблемой: Имеется класс "1", в котором объявляется переменная "x" и дальше используется в методе этого класса. Есть класс "2", производный от класса "1", в котором тоже объявляется переменная "х", которая тоже должна использоваться в методе класса "1". Но, т.к. в классе "1" уже есть переменная "х" - она ее переопределяет. Подскажите, как сделать так, что бы переменная "х" класса "2" оставалась? Вот что пишет студия: 2.х скрывает наследуемый член 1.х. Если предполагается скрытие, используете ключевое слово new. Эм.. куда его использовать?)) Я пробовал - не помогает, все-равно переопределяет значение переменной. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Чего? Откуда метод класса 1 знает о переменной, объявленной в наследнике этого класса? а код ты из принципиальных соображений не показываешь, чтобы задачу усложнить? |
|||
|
||||
Rays |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.2.2009 Репутация: нет Всего: нет |
Хм.. т.е. так нельзя сделать?)) Ну ладно, плохо...) Вот код, но думаю, он уже не нужен:
Смысл в том, что бы подставлять разные значения перпеменных в один и тот же метод. |
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 7 Всего: 306 |
||||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 7 Всего: 306 |
так или иначе - но в таких темах нужен мелафон
![]() |
|||
|
||||
ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Ещё бы, когда видишь такой код на С++ это нормально, но когда видишь такой код под .NET это вызывает удивление, поскольку человек не читает спецификацию и не в курсе, что благодаря Intellisense основанному на работе с метаданными можно давать нормальные имена переменным и не стесняться их делать длинными (и понятными) ![]() -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
Мне кажется, что для реализации математических алгоритмов это нормально. Есть набор формул в литературе с устоявшимися специфическими короткими именами переменных (которые даже могут не нести никакой смысловой нагрузки, например имена каких-либо коэффициентов - a, b, c) - почему бы не перенести это в код? Другой человек, имея соответствующую подготовку, достаточно быстро вникнет в такой код, быстро соотнеся его с изложенными формулами в статьях. |
|||
|
||||
Mephisto |
|
||||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
брррр. Причем тут спецификация .NET и Intellisense? Одно дело платформа, другое приблуда к студии MS. Под .NET пожно писать и на шарпдевелопе и на монодевелопе, да и в любом блокноте, даже в консольном. Никаких Intellisense'ов там не будет. В других студиях другие средства заменяющие его, иногда даже лучше. А еще мне не понятно почему в С++ нельзя, дословно
И Intellisense тут ни при чем. Я пользуюсь KDevelop. Начиная с версии 4 у него навигация и автопостроение документации ИМХО на голову выше при работе с С++. Очень сильно напоминает работу в студии с установленным ReSharper. Кто использует, тот понимает.
Это нормально. Два поля с одинаковым названием не бывает в нете. Да и в плюсах это по хорошему дурной тон. Поддержка такой фичи появилась как следствие поддержки двойного наследования, когда возможно появление двух полей с одинаковым именем и разным назначением. Только из-за этого и появился механизм разрешения коллизий одинаковых имен. В .net ситуация иная. Тут нет двойного наследования. Соответственно поле с одним названием должно быть одно единственное и нести однозначный смысл. Поэтому если ты определяешь в потомке св-во с тем же именем что и в предке, ты таким образом заменяешь св-во предка по сути. Можно разве что сделать определенное поле предка вируальным.
и переопределить его в потомке. |
||||||
|
|||||||
Rays |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.2.2009 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |