Текущий архив: 2009.06.07;
Скачать: CL | DM;
ВнизБудущее Делфи? Найти похожие ветки
← →
oxffff © (2009-04-04 01:21) [120]
> Городской Шаман (04.04.09 01:20) [119
Как это фигня? То есть ты хочешь сказать, что такого нет?
← →
Городской Шаман (2009-04-04 02:12) [121]
> oxffff © (04.04.09 01:21) [120]
>
> > Городской Шаман (04.04.09 01:20) [119
>
> Как это фигня? То есть ты хочешь сказать, что такого нет?
Фигня ваш холивор. Вот на украинских формах холиворы и по 1000 постов бывают, например даже не о языке, а о тех же виртуальных методах.
← →
oxffff © (2009-04-04 02:26) [122]
> Городской Шаман (04.04.09 02:12) [121]
Нет фоливара. Есть обмен мнениями. Я честно как только увидел вопрос для чего нужны виртуальные методы, сразу представил о чем может идти речь.
Мне это не интересно.
Далее ткнул наугад страницу то ли 4 то ли 5. Увидел только два умных и знакомых слова callvirt(интсрукция MSIL) и
ковариантность. Это
Covariance and contravariance provide a degree of flexibility when matching method signatures with delegate types. Covariance permits a method to have a more derived return type than what is defined in the delegate. Contravariance permits a method with parameter types that are less derived than in the delegate type.
Example 1 (Covariance)
This example demonstrates how delegates can be used with methods that have return types that are derived from the return type in the delegate signature. The data type returned by SecondHandler is of type Dogs, which derives from the Mammals type that is defined in the delegate.
C# Copy Code
class Mammals
{
}
class Dogs : Mammals
{
}
class Program
{
// Define the delegate.
public delegate Mammals HandlerMethod();
public static Mammals FirstHandler()
{
return null;
}
public static Dogs SecondHandler()
{
return null;
}
static void Main()
{
HandlerMethod handler1 = FirstHandler;
// Covariance allows this delegate.
HandlerMethod handler2 = SecondHandler;
}
}
Example 2 (Contravariance)
This example demonstrates how delegates can be used with methods that have parameters of a type that are base types of the delegate signature parameter type. With contravariance, you can now use one event handler in places where, previously, you would have had to use separate handlers. For example, you can now create an event handler that accepts an EventArgs input parameter and use it with the Button.MouseClick event that sends a MouseEventArgs type as a parameter, and also with TextBox.KeyDown event that sends a KeyEventArgs parameter.
C# Copy Code
System.DateTime lastActivity;
public Form1()
{
InitializeComponent();
lastActivity = new System.DateTime();
this.textBox1.KeyDown += this.MultiHandler; //works with KeyEventArgs
this.button1.MouseClick += this.MultiHandler; //works with MouseEventArgs
}
// Event hander for any event with an EventArgs or
// derived class in the second parameter
private void MultiHandler(object sender, System.EventArgs e)
{
lastActivity = System.DateTime.Now;
}
.
← →
oxffff © (2009-04-04 02:32) [123]
> Городской Шаман (04.04.09 02:12) [121]
Ты там наблюдай за ними. Как только увидишь затык, приглашай сюда.
Все расскажем и покажем. Как? Что? Куда? Почему?
← →
iZEN (2009-04-04 17:47) [124]
> Kostafey © (02.04.09 17:37) [37]
>
> > [35] test © (02.04.09 17:29)
>
> Судя по тому что написано в википедии,
> Ruby создавался как мегасовременный и
> продуманный язык, который учел все достоинства
> и недостатки предыдущих. Посему в какой-то
> момент загорелся идеей изучить, тем более, что
> есть реализация на java.
> А Ruby on rails - опять-таки мегасовременный
> фреймворк для веба, где, мол все уже есть.
В FreeBSD на Ruby написан инструмент сопровождения программного обеспечения "portupgrade". Больше никаких тулзовин на нём не встречал (не было нужды).
Пик популярности Ruby и RoR пришёлся на 2005-2006гг. Сейчас оно как-то заглохло и работает только в своей нише. Да ещё JRuby сделали для переноса Ruby-библиотек на Java (см NetBeans 6.5.x). Хотя там оно ненужно со всей очевидностью, так как есть фреймворки JSP/JSF и разнообразие чётко специфицированных библиотек JEE.
На Unix-подобных операционках наиболее популярны такие языки как C (системный код), Perl (в основном автоматизированные инструменты сборки других программ), Python (связующее звено между приложениями), другие скриптовые языки (Bash в Linux; sh/tcsh в FreeBSD), включая "экзотический" Lua и препроцессор M4.
Для программирования в Web под Unix применяются PHP (стэк LAMP) и Java (JSP/JSF/JEE). Серьёзное прикладное программирование невозможно без интегрированных сред типа NetBeans и Eclipse (обе поддерживают много языков программирования и разметки, а также интеграцию разнородных проектов и сопровождение кода).
DVCS представлены широким спектром бесплатных и проверенных временем систем контроля версий. От стремительно устаревающей CVS и "переходной" SVN до современных Git и Mercurial.
Учитывая преобладающий сете-центричный характер разработок, в которых разработчики ни разу в жизни не видели друг друга, изобретаются новые способы сопровождения как исходного кода (DVCS), так и готового к распространению, включая необходимые библиотеки и инструменты для повторяемой сборки и управления жизненным циклом ПО (синхронизированные репозитории — см. Apache Maven2 для Java, например).
← →
Kostafey © (2009-04-04 20:23) [125]> [124] iZEN (04.04.09 17:47)
Спасибо за обзор.
Кстати, о Python. Один из Mercurial-клиентов как раз на нем
писан (PyGTK). Хотя, это похоже, скорее экзотика.
← →
iZEN © (2009-04-05 00:05) [126]
> Kostafey © (04.04.09 20:23) [125]
> Кстати, о Python. Один из Mercurial-клиентов как раз на
> нем
> писан (PyGTK). Хотя, это похоже, скорее экзотика.
Да. Команда разработчиков Python совсем недавно выбрала Mercurial в качестве основной DVCS проекта. Git им не понравился, потому что написан на C. :))
← →
iZEN © (2009-04-05 00:06) [127]На Python написан популярный torrent-клиент Deluge. И ещё куча полезных оконных приложений.
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2009.06.07;
Скачать: CL | DM;
Память: 0.73 MB
Время: 0.011 c