Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Автор FAQ
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
1

Расширяющий метод для изменения структуры

03.07.2010, 23:32. Показов 1599. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Смысл в том что структура Rectangle поступает гадко имея Width и Height отрицательного размера (получение скриншота экрана от такого выделения Rectangle не работает как следует). Поэтому хотелось бы как то получать нормальную стрктуру где X, Y действительно являются верхним левым углом.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        public static void FixSize(this Rectangle rect)
        {
            if (rect.Width < 0)
            {
                rect.X += rect.Width;
                rect.Width = -rect.Width;
            }
            if (rect.Height < 0)
            {
                rect.Y += rect.Height;
                rect.Height = -rect.Height;
            }
        }
Но этот расширяющий метод не действенен, ведь структуры - значения а не ссылки и я получаю на входе копию
Как быть? Возвращать новый Rectangle?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2010, 23:32
Ответы с готовыми решениями:

Создать расширяющий метод для целочисленного массива
Здравствуйте. Как создать расширяющий метод для целочисленного массива, который сортирует элементы...

Расширяющий метод
Метод расширение для stringa, который при вызове добавляет пробел к концу строки. Как передать...

Расширяющий метод
Добрый день.Хотел написать что-то в духе prop.NonEither(x =&gt; x != null, () =&gt; { ... ; }, () =&gt;...

Расширяющий метод
Здравствуйте. Дана библиотека фигур. Помогите пожалуйста написать расширяющий метод, который...

1
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
03.07.2010, 23:59 2
No other parameter modifiers (ref, out, etc…) are allowed with the modifier this. As a result, a value type can’t be passed by reference to an Extension Method.
Только возвращать
1
03.07.2010, 23:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2010, 23:59
Помогаю со студенческими работами здесь

Расширяющий метод
Разбираюсь с расширяющими методами, например у троелсена есть код, у него же сказано что перед...

Расширяющий метод: исправить код
В файлах - страница из книги и результат работы программы. Мой код: using System; class...

Компилятор не видит расширяющий метод
Сделал расширяющий метод ForbiddenSymbols() для класса string но среда просто его не видит....

Может ли расширяющий метод быть нестатическим
A) Да, если он расширяет нестатический класс B) Да, если он расширяет абстрактный класс C) Нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru