Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 09:58:13

Страниц: [1]
Печать
Автор Тема: C#/.NET маленькие чудеса: ограничение обобщений при помощи условия where  (Прочитано 584 раз)
0 Пользователей и 1 Гость смотрят эту тему.
krasun    ↓ 
21 Январь, 2011, 01:09:28
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

Попробовал перевести C#/.NET Little Wonders: Constraining Generics with Where Clause
 

Еще когда я был C++ разработчиком, я любил шаблоны. Возможность написания обобщенных классов подняли искусство программирования на новый уровень.
 
К сожалению, когда вышел .NET 1.0, там не было эквивалента шаблонам. Однако с .NET 2.0, мы окончательно получили обобщения, которые позволили нам еще раз взмахнуть крыльями и программировать более обобщенно в мире .NET.
 
Однако, обобщения C# иногда введут себя совсем иначе, чем ихние двоюродные братья C++ шаблоны. Существует одно удобное положение, которое поможет обойти эти воды и сделает ваши  обобщения более мощными...
Спустя 19 секунд добавил
Упс, перевод здесь - http://gautama-it.blogspot.com/2011/01/cnet-where.html
Записан
kostyl    ↓ 
21 Январь, 2011, 01:21:16 , спустя 11 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

krasun, круто, но это фундаментальная вещь ))
Записан

качество жизни обратно пропорционально количеству лени
krasun    ↓ 
21 Январь, 2011, 01:32:12 , спустя 10 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

kostyl, я знаю, просто ради интереса перевел.
Записан
phpdude    ↓ 
21 Январь, 2011, 01:37:36 , спустя 5 минут 24 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

kostyl, ты гитару ни рзу не видел? чо так разглядываешь?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
kostyl    ↓ 
21 Январь, 2011, 01:40:22 , спустя 2 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

ты гитару ни рзу не видел? чо так разглядываешь?
я играю в это время, не понятно конечно, но я вроде Моцарта валю в это время ;)
Записан

качество жизни обратно пропорционально количеству лени
Абырвалг    ↓ 
21 Январь, 2011, 03:00:40 , спустя 1 час 20 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

нормальная аватара. Дуд, тебе лишь бы доебаться
Спустя 38 секунд добавил
по сабжу: а вот если я понятия не имею о всех этих шаблонах ваших из сишки - я хуевый программист значит?
Спустя 40 секунд добавил
не, ну как, я что-то там краем уха слышал, там какие-то списки вроде, <> - от такие знаки фигурируют, но что это - беспонятия
Спустя 46 секунд добавил
ну, я как бы и без этого славно программирую на аяксе, может оно мне и не нужно?
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
Frozzeg    ↓ 
21 Январь, 2011, 03:01:22 , спустя 42 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

Как обобщенный тип может быть ссылочным типом, также само он может быть и типом значений.
:D
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
phpdude    ↓ 
21 Январь, 2011, 03:01:30 , спустя 8 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

Дуд, тебе лишь бы доебаться
бля, спалился
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Абырвалг    ↓ 
21 Январь, 2011, 03:02:05 , спустя 35 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

это типа Traits?
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
krasun    ↓ 
21 Январь, 2011, 04:04:04 , спустя 1 час 1 минуту 59 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

Абырвалг, там примерно, смысл такой, что можно написать класс или метод, который работает с обобщенным типом данных.
 
То есть алгоритм, который, например, делает одно и тоже для чисел, строк, массивов, можно обобщить и сделать его более абстрактным. В этом случае ты пишешь, тот же алгоритм, который работает с обобщенным типом (например, типом значений, а это обычные примитивные типы, структуры и так далее). Потом, ты вызываешь уже этот метод, подставляя вместо обобщенного типа свой конкретный, например, ты хочешь, что бы метод работал с int. И ахуенчик, оно компилируется в полноценный метод с интом.
 
Или, другой пример, есть списки (List), они работают с обобщенными типами данных (generic type), при создании объекта списка, ты конкретезируешь типы элементов, которые будут в нем хранится:
C#

List<int> listOfInts = new List<int>();
 
И он так же само будет работать для строк и так далее. Оно скомпилируется в полноценный список интов.
Один из самых больших плюсов это строгая типизация здесь. Почему?
 
Потому, что можно было достичь такого же эффекта и без обобщений. Например,
C#

ArrayList listOfAnyObjects = new ArrayList();
 
Этот список будет хранить любые объекты, и инты и строки и т.д. Как в php - обычный массив. И о любых ошибках ты будешь узнавать во время выполнения.
 
Если ты используешь, обобщения, то получишь ошибки на стадии компиляции, ибо обобщения компилируются в обычный полноценный класс, уже с конкретным типом данных, который ты укажешь.
 
Короче, как по мне, так оно приятно, у меня уже даже почти получилось это применить. Пытаюсь написать библиотеку валидаторов, которая будет валидировать обобщенный тип, но последнее время сомневаюсь, что так правильно.
 

ну, я как бы и без этого славно программирую на аяксе, может оно мне и не нужно?
Я думаю, парится не стоит, ибо оно и не как не подойдет в мир php и javascript, там такие ситуации разруливаются по-своему. Те задачи, которые я решаю на C#, например, также и решаются на php, да много не хватает после C#. Но это не есть проблема, здесь не хуже, здесь по-другому. Поэтому парится не стоит
 

Блять, ну я написал, надеюсь, ты хоть, что-то поймешь
 
P.S Ненавижу такие фразы, но у меня это уже как ритуал  

Блять, ну я написал, надеюсь, ты хоть, что-то поймешь
Спустя 3 минуты 19 секунд добавил
я играю в это время, не понятно конечно, но я вроде Моцарта валю в это время
Сколько времени ты учился, что бы сыграть Моцарта? По нотам играешь?
Записан
kostyl    ↓ 
21 Январь, 2011, 10:38:32 , спустя 6 часов 34 минуты 28 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

Сколько времени ты учился, что бы сыграть Моцарта? По нотам играешь?
да за 5 минут подобрал кусочек, ты же не слышал как я играл (я имею в виду не факт что я качественно это делал), вот только не знаю Моцарт это или нет, это кусок из фильма "Концерт" где цыган на скрипке валит (прикольный момент там есть)
Записан

качество жизни обратно пропорционально количеству лени
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd