Jusper, сносить не обязательно. На самом деле мне оч нравится винда, от убунты пока что еще не получил удовольствия, хотя когда работаешь с серверами или еще чем то, то да она оч удобная. Жаль только 4 рабочих экрана убрали в новой версии(
Вот учебник хороший, когда то сам начинал именно с него (правда лишь пробежался, чтобы понять и разобраться в синтаксисе языка). В конце есть простенькие задачи на разные темы в большом кол-ве вариантов. Ответов правда нет, но там задачи весьма простые. Надеюсь, это то что нужно. Если нужны задачи на алгоритмы, то есть еще один вариант, но правда ответов тоже нету, хотя я не пробовал искать в интернете их
Isstrebitel, ну значит в gif он тоже криво обрабатывает. Создание миниатюр происходит на сервере, и он воспринимает, вроде бы черные пиксели за прозрачность, если отсутсвует альфа канал на картинке, и это не моя вина, так работает библиотека картинками.
alexprey, что есть методы расширения я прекрасно понимаю, потому и привел сравнение со статическими методами. Про наследование имелась в виду ситуация, когда есть базовый класс, есть его наследники и есть методы расширения к базовому классу.
ну а что их сравнивать, если это они и есть?) И что тут не понятно? prog, UI-хелпер по мне так это такая штука которая и так на высоком уровне, она работает с абстракциями и шаблонами. А делать фабрику для этого нет особо смысла, по крайней мере я не вижу в этом смысл, придется его инициализровать на каждого окна отдельно, подпихивать в UI модель, и потом использовать его. В общем вот что я скажу, на каждый проект надо смотреть по разному, в нашем случае было сделано так, никто не жаловался, в том числе и архитекторы)
Вот в случае с дата провайдерами, тут да я согласен, удобно использовать фабрику и адаптеры, чтобы можно в любой момент поменять способ получения данных.
Преимущество адаптеров, врапперов и фасадов перед матодами расширения в том, что в один враппер можно собрать сразу несколько перекликающихся дополнительных методов, плюс там можно хранить дополнительные поля, недостающие исходному классу - методы расширения не дают второго в принципе, а первое дают условно - можно в один класс собирать все методы расширения для одного класса, но это не позволит, например, провернуть трюк с наследованием от враппера и переопределением какого-нибудь дополнительного метода.
это плюсы, а разные решения. Как бы расширение для этого и не нужно. prog:
которые есть у существующего метода расширения?", "а как себя ведут методы расширения при наследовании?" и другие.
тут уже пошла легкая наркомания, похоже ты не докурил основы. 1) Ошибка компиляции, проблема в расширении 2) Ошибка компиляции, какое нахрен наследование у статического класса prog:
К сожалению, в отличии от простых статических методов, законно занимающих нишу таких фундаментальных вещей, как математические вычисления, такой ниши для методов расширения я не вижу, не считая работы с массивами, но для этого есть коллекции.
Для коллекций тоже иногда нужны расширения под нужды системы. Вот например у нас в проекте используется Join для коллекций, и еще много различных методов для быстрого преобразования и агрегирования данных. уть методов расширения обернуть большую цепочку повторяющихся действий в один метод. Еще один пример, есть UIHelper который помогает создавать UI часть для приложения, в нем храняться нужные контексты и базовые методы, аля DisplayFor и т.д. Для создания простых форм для редактирования данных приходится писать
все просто, красиво и главное потом легко изменить отображение всех форм и т.д. И использовать можно на любой форме, все просто компактно и все данные всегда с собой. prog:
С натяжкой можно предположить что с помощью методов расширения можно дополнить операции с векторами, а также упомянуть про возможность переопределить операторы, добавив к своим классам возможность использоваться в качестве операндов, но эти две возможности я нахожу весьма сомнительными.
расширение операндов дело тонкой, но в большинстве случаев весьма удобное. Но тут действительно из место внутри нормального класса.
Каждый раз перечитываю и понимаю, что ты так и не понял приколюху методов расширений. Метод расширение - это тот же статический метод, просто он первым аргументом принимает объект класса, который расширяет. Опять же:
java:
public final class ArrayExtension {
public static int getLast(int[] array) {
return array[array.size() - 1];
}
}
...
ArrayExtension.getLast(myArray);
c#:
public static class ArrayExtension
{
public static int GetLast(this int[] array)
{
return array[array.Length - 1];
}
}
...
myArray.GetLast();
ArrayExtension.GetLast(myArray);
По архитектуре приложений, даже я бы почитал. А Action Script мне кажется ну тема не особо приличная) Lua побольше используется и в разных играх, да и прикрутить её не сложно вроде бы.
prog, что это за программисты такие которые не могут отследить где метод расположен.... Студия такие методы выделяет и отправляет в нужный класс. Просто им было лень и скинули дело на тебя. Проблема фасада в том, что если добавят новйы метод в основной класс, тебе придется расширять новый и т.д. У нас в проекте с большим успехом юзают расширения для простоты написания кода и никто не жалуется. Mihahail:
alexprey, я вообще мимокрокодил. Но аргумент "сперва добейся" - не аргумент.
Моя цель сподвигнуть других писать статьи) А вообще экстраверт тоже, сперва пришел и начал везде всех расскидывать такими же контр-комментариями, но он хотя бы доказал что он может не только писать заумные комментарии.
Я лично помогал в том году нашему преподавателю разрабатывать учебник для первого курса по плюсам и шарпам. Там было все так же разжованно, а в некоторых местах еще лучше. Большинство все равно так и не понимали как это делать, пока им устно не расскажешь, но в итоге, они все таки освоили язык. Поэтому давай те не будем тут разводить срачи и напишем каждый по несколько статей по основом любого языка.
Вот ты prog, например, ты отлично знаешь джаву, так почему бы не научить других? Я уверен, у тебя бы получились отличные статьи, наверняка.
И на последок, почему то мне кажется вы не дочитываете статью, или просто пробежались по коду и все. Потому что там было сказано, что их их надо использовть с умом, а не тыкать везде и всюду... вот теперь точно все
имена методов с большой буквы - ааааа моооииии глаааазааааа!
вот только не надо тут холиваров по стилю написания кода. prog, Mihahail, nvc123, bea_mind, вот вы все молодцы, хоть бы одну статью написали. Человек старается и пытается развить сайт, а вы тут сидите и пинаете палочки. Говорил, и еще раз скажу, хотите показать свою крутоту всем? Так возьмите и напишите статью prog:
Не говоря уже о том, что конкретно методы расширения есть зло
не понимаешь всю их прелесть, они упрощают твою жизнь.
Faion, в книгах тоже бывают опечатки, по твоему тогда и авторы тоже не знаю языка? А так попрошу не горячиться и помочь с написанием статей для новичков, раз ты такой умный
» Jusper's Notes / Если ты решился... #1
» Jusper's Notes / Если ты решился... #1
» Администрация XGM / Пропала ачивка "с ХГМ навеки"
» Блог им. AlexPrey'я / XGM Update Log
» Волшебник Земноморья / Следующая глава
» На дне с Ктулху / Что делать?
» Программирование / Задачи по C#?
» Администрация XGM / Баг со скринами
» Программирование / Методы расширений
prog, UI-хелпер по мне так это такая штука которая и так на высоком уровне, она работает с абстракциями и шаблонами. А делать фабрику для этого нет особо смысла, по крайней мере я не вижу в этом смысл, придется его инициализровать на каждого окна отдельно, подпихивать в UI модель, и потом использовать его. В общем вот что я скажу, на каждый проект надо смотреть по разному, в нашем случае было сделано так, никто не жаловался, в том числе и архитекторы)
Вот в случае с дата провайдерами, тут да я согласен, удобно использовать фабрику и адаптеры, чтобы можно в любой момент поменять способ получения данных.
» Администрация XGM / Баг со скринами
» Программирование / Методы расширений
prog:
prog:
prog:
» Программирование / Задачи по C#?
» Программирование / Методы расширений
Mihahail:
Я лично помогал в том году нашему преподавателю разрабатывать учебник для первого курса по плюсам и шарпам. Там было все так же разжованно, а в некоторых местах еще лучше. Большинство все равно так и не понимали как это делать, пока им устно не расскажешь, но в итоге, они все таки освоили язык. Поэтому давай те не будем тут разводить срачи и напишем каждый по несколько статей по основом любого языка.
Вот ты prog, например, ты отлично знаешь джаву, так почему бы не научить других? Я уверен, у тебя бы получились отличные статьи, наверняка.
И на последок, почему то мне кажется вы не дочитываете статью, или просто пробежались по коду и все. Потому что там было сказано, что их их надо использовть с умом, а не тыкать везде и всюду... вот теперь точно все
» Программирование / Методы расширений
prog, Mihahail, nvc123, bea_mind, вот вы все молодцы, хоть бы одну статью написали. Человек старается и пытается развить сайт, а вы тут сидите и пинаете палочки. Говорил, и еще раз скажу, хотите показать свою крутоту всем? Так возьмите и напишите статью
prog:
» Программирование / Методы расширений
» Программирование / Методы расширений
» Программирование / Методы расширений
» Администрация XGM / подпись более 3 строк, путаюсь в сообщениях очень =(
» Администрация XGM / подпись более 3 строк, путаюсь в сообщениях очень =(
» Блог им. AlexPrey'я / XGM Update Log
» Администрация XGM / подпись более 3 строк, путаюсь в сообщениях очень =(
» Программирование / Методы расширений
» Игровые обзоры / Mortal Combat X
» Игровые обзоры / Mortal Combat X