|
|
|
|
#1 |
|
Форумчанин
|
Зачастую сталкивался с такими ситуациями, что при проектирование очередного приложения добавление необходимых мне методов в него перегружает объект(в смысле приходится наделять его свойствами которые с одной стороны могут принадлежать ему, а с другой они в нем избыточны, но в некоторых не частых ситуациях полезны). С одной стороны можно создать еще класс, который будет делать с объектами, упомянутого мной выше класса, необходимые мне вещи, но опятьже это перегружение проекта. Или же необходимо наделить какой-то класс свойствами которые не были предусмотренны разработчиками данного класса(предполагается что у вас нет возможности посмотреть его исходник). Для выхода из подобных ситуаций в .NET 3 и выше были добавленны так называемые расширения.
Расширение - возможность добавить к классу свойства в некотором контексте. Допустим мне надо проверить четность инт числа в нескольких различных местах. 1 выход: ... int i = 8; ... if(i % 2 == 0) ... ... 2 выход: Расширить класс int добавив в него метод IsEven Для этого необходимо создать класс с рассширениями и внести расширение для int. ... public static class Extensions { public static bool IsEven(this int val) { return val%2==0; } } ... после введения данного расширениях, в местах где виден класс Extensions, можно написать следующим образом ... int i = 8; ... if(i.IsEven()) { //Do some thing } ... Рассмотренный пример расширения может и не так необходим, но зато ярко демонстрирует суть ситуации. |
|
|
|
| Наши Спонсоры | |
|
|
|
|
#2 |
|
Форумчанин
Сообщений: 43
Поблагодарили 3 раз(а) в 3 сообщениях
Репутация: 11/0
|
познавательно. спасибо. жму +
|
|
|
|
Copyright © 2008 - 2010 «HACKER-PRO CLUB» Реклама на сайте Правила Форума Пользовательское соглашение |