4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 47
|
|
1 | |
Как запомнить сигнатуры методов?25.02.2013, 16:12. Показов 2410. Ответов 10
Метки нет (Все метки)
Здравствуйте.
подскажите. не могу разобраться. есть массив int типу myArray. столкнулся с такой проблемой и думаю весь МСДН имеет такие нюансы, но как их преобразовать в знания не могу понять ...Вот: чтобы создать клон массива используем метод Clone чтобы найти среднее значение елементов массива используем метод Average int temp=myArray.Average() - возвращает сред. значение int[] myArray2 = (int[])myArray.Clone(); - создает новый массив. в обоих случаях используем методы, но сигнатуры совсем разные было бы проще везде использовать одну сигнатуру, но в связи с чем - то они разные. а если в еще какой то метод будет использовать 3-ю...10-ю сигнатуру записи, то как их все запомнить? или постоянно пользоваться МСДН?
0
|
25.02.2013, 16:12 | |
Ответы с готовыми решениями:
10
Как добавлять в список методы разной сигнатуры? Как сделать сканер вирусов, используя сигнатуры Объяснить такие понятия как делегаты, сигнатуры, интерфейсы, ковариантность, контравариантность Как заполнить поле сигнатуры (цифровая подпись) или получить XML-запрос? |
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
25.02.2013, 17:13 | 3 |
Одна сигнатура = один метод.
Вы хотите и клонировать, и находить среднее арифметическое, используя один и тот же метод?
0
|
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 47
|
|
25.02.2013, 17:53 [ТС] | 4 |
спасибо. кажется уже разобрался. не мог понять почему в втором методе (клонирование) стоит приведение к типу (int[]) и не правильно понял этот метод. разобравшись понял, что метод Clone возвращает тип Object, и его нужно привести к массиву. хотя не совсем понимаю почему метод "Клон" сам не приводит к типу "Аррей".
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
25.02.2013, 18:01 | 5 |
0
|
773 / 553 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
|
|
25.02.2013, 18:31 | 6 |
grazyboj, ваши идеи воплощены в таких языках как например php ,там что угодно можно присваивать чему угодна .
0
|
25.02.2013, 18:32 | 7 |
Вот как раз подобные методы, возвращающие object и предназначены для того, чтоб не делать много сигнатур для, скажем, клонирования объектов различных типов. Вы можете вызывать метод Clone и для массивов, и для других типов.
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
25.02.2013, 19:05 | 8 |
Начиная со второй версии фреймворка, для этой цели лучше подходят обобщенные классы/интерфейсы.
Это одна из причин, по которой сам МС не рекомендует использовать интерфейс ICloneable.
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
25.02.2013, 20:31 | 10 |
Потому что отсутствие явной типизации — одна из причин, по которой не рекомендуется использовать этот интерфейс.
Даже после устранения этой причины путем внедрения обощенного интерфейса, остаются другие, устранить которые не так просто, если вообще возможно при нынешней архитектуре фреймворка. Внедрение серьезных изменений требует серьезных же затрат. Видать, в МС считают, что внедрение нормального механизма клонирования не окупит себестоимость.
1
|
Master of Orion
|
|
25.02.2013, 21:00 | 11 |
kolorotur, ну да, как я мог забыть
0
|
25.02.2013, 21:00 | |
25.02.2013, 21:00 | |
Помогаю со студенческими работами здесь
11
Как программно получить список методов класса, параметров этих методов и типов этих параметров? Как запомнить переменную? Как запомнить переменную Как запомнить строку.... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |