Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавить метод ко всем компонентам 
V
    Опции темы
Red Wind
Дата 23.7.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Скажите, как можно добавить свойство или метод КО ВСЕМ (WinForms и/или WebForms) компонентам СРАЗУ? То есть, я хочу добавить ко всем компонентам некоторые, но, одинаковые для всех, свойства и методы. Базовый классы компонентов (System.Windows.Forms.Control/System.Web.UI.Control) отредактировать не получиться. Как можно реализавать мою задумку другим способом? 
Спасибо!

P.S. Создание компонентов, по отдельности, на базе существующих не предлагать smile  
PM MAIL ICQ   Вверх
Exception
Дата 23.7.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



В C# 3.0 это можно реализовать через extensions где-то так:
Код
[Extension]
void SomeNewMethod(this Control source)
{
  Console.WriteLine(source.Name);
}
// ...
myButton.SomeNewMethod();
Впрочем, тут надо либо качать предварительный вариант компилятора, либо молчать в тряпочку. Для ASP .NET можно сделать, чтобы в окошке Properties высвечивалось новое "свойство", но оно ненастоящее. 
PM   Вверх
Red Wind
Дата 24.7.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Цитата(Exception @  23.7.2006,  23:39 Найти цитируемый пост)
В C# 3.0 это можно реализовать через extensions...

А где взять этот самый С# 3.0? Он идёт с третим фреймворком? 
PM MAIL ICQ   Вверх
Ch0bits
Дата 24.7.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Да. 
PM WWW   Вверх
Red Wind
Дата 26.7.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Есть и другое решение, всех интересующихся прошу сюда:
http://forum.sources.ru/index.php?showtopic=149212  

Это сообщение отредактировал(а) Red Wind - 26.7.2006, 21:27
PM MAIL ICQ   Вверх
Exception
Дата 27.7.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Скопировать трудно было? Да, я об этом и говорил (оказывается, оно не только для ASP .NET). Только это не решение. Ведь свойство оно не добавляет! Оно добавляет раздел в Properties Window, только и всего. Если бы ты попробовал его вызвать из кода, ничего бы не получилось. А на свой вопрос ответ ты получил -- к другому классу свойство не добавить.
P.S. Компилятор C# 3.0 есть в LINQ CTP. 
PM   Вверх
Red Wind
Дата 27.7.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Да ладно, такое решение мне тоже подойдёт. 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.