Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 327 328 [329] 330 331 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#4921
,
|
|
|
|
|
Сообщ.
#4922
,
|
|
|
|
Цитата D_KEY @ Для клиента у тебя будет почти тоже самое, что ты сейчас пишешь. И даже Code Completion? Цитата D_KEY @ get<1> А вот дженерики индексировать нельзя... |
|
Сообщ.
#4923
,
|
|
|
|
Цитата DesweR @ Да нет. Объект - это замок, а Get/Set - открыть ключом, либо закрыть ключом замок (получить методом данные, либо записать методом данные). Уже в конкретику ударились? Ну хорошо, пусть будет объект - замок, а Get/Set - открыть/закрыть ключем. Тогда можешь пояснить, чем эти ключи отличаются? С чего это они разные? Они как раз таки и говорят, что ты делаешь с объектом. Открываешь или закрываешь. Если я пишу GetObject(); то сразу вижу, что в этом месте я получаю данные. Если я пишу SetObject(val), то сразу видно, что я явно их не получаю, а устанавливаю. Где тут разные ключи? Может быть ты объяснишь в чем преимущество свойств перед методами Get/Set? |
|
Сообщ.
#4924
,
|
|
|
|
Цитата DesweR @ А вот дженерики нормально использовать нельзя... fixed Скрытый текст У korvin'а научился |
|
Сообщ.
#4925
,
|
|
|
|
Цитата DesweR @ А вот дженерики индексировать нельзя... А, ну тогда без копипасты никак... Макросов тоже нет? Как же вы живете ? |
|
Сообщ.
#4926
,
|
|
|
|
D_KEY, ну, а что ты хочешь? В дотнете вон тоже вполне "официально" делегаты Func и Action копипастой сделаны.
Хотя даже само наличие двух сущностей для одного и того же изрядно доставляет. |
|
Сообщ.
#4927
,
|
|
|
|
Цитата MyNameIsIgor @ D_KEY, ну, а что ты хочешь? Адекватных средств для мета- и обобщенного программирования. Хотя для .NET есть тот же Nemerle, который позволит нагенерить соответствующие классы. |
|
Сообщ.
#4928
,
|
|
|
|
Цитата D_KEY @ Хотя для .NET есть тот же Nemerle, который позволит нагенерить соответствующие классы. Ну, это необязательно, у них же там есть кодогенератор какой-то... Ща дотнетчики подскажут, они всякий раз его вспоминают, когда им показывают метапрограмминг на шаблонах. Добавлено T4, во! |
|
Сообщ.
#4929
,
|
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ Хотя для .NET есть тот же Nemerle, который позволит нагенерить соответствующие классы. Ну, это необязательно, у них же там есть кодогенератор какой-то... Ща дотнетчики подскажут, они всякий раз его вспоминают, когда им показывают метапрограмминг на шаблонах. Добавлено T4, во! Жесть какая-то. Впрочем, если на практике справляется, то нормально Хотя в таком случае для любого языка можно просто воспользоваться m4 и другими подобными средствами. Или awk/perl/python и т.п. Или даже flex/bison |
|
Сообщ.
#4930
,
|
|
|
|
Цитата DesweR @ ![]() ![]() var Tuple: TTuple<Integer, Char>; begin Tuple := TTuple<Integer, Char>.Create(123, 'A'); ... end; Цитата make me unsee it |
|
Сообщ.
#4931
,
|
|
|
|
Цитата DesweR @ Нафик нужны такие кортежи. Чем хуже обычный массив из TValue передавать? Особенного там ничего нет (дженерики и местами rtti), вот отрывок. До финальной версии ещё далеко. |
|
Сообщ.
#4932
,
|
|
|
|
Цитата korvin @ Гм. Вообще-то это следствие, а не причина. Причём цепочка буквально в одно звено: раз влияние деталей ограничено областью видимости класса... Поэтому твой выводвообще-то не только и не столько для этого, а для возможности менять реализацию, без влияния на клиентский код. Цитата korvin @ абсолютно несостоятелен. ты в своих суждениях отталкиваешься от реализации, а нужно отталкиваться от интерфейсов. |
|
Сообщ.
#4933
,
|
|
|
|
Цитата MyNameIsIgor @ В дотнете вон тоже вполне "официально" делегаты Func и Action копипастой сделаны. Хотя даже само наличие двух сущностей для одного и того же изрядно доставляет. Они не совсем для одного и того же. Func<T> - функция, без параметров, возвращает тип Т. Action<T> - "действие", ничего не возвращает, принимает один параметр типа Т. Как бы ты одной сущностью заменил ? |
|
Сообщ.
#4934
,
|
|
|
|
Цитата IL_Agent @ Цитата MyNameIsIgor @ В дотнете вон тоже вполне "официально" делегаты Func и Action копипастой сделаны. Хотя даже само наличие двух сущностей для одного и того же изрядно доставляет. Они не совсем для одного и того же. Func<T> - функция, без параметров, возвращает тип Т. Action<T> - "действие", ничего не возвращает, принимает один параметр типа Т. Как бы ты одной сущностью заменил ? Я не очень понял, о чем вы, но может Action<T> заменить на Func<void, T>? |
|
Сообщ.
#4935
,
|
|
|
|
Цитата Qraizer @ Гм. Вообще-то это следствие, а не причина. нет. это причина, а спецификаторы доступа -- всего лишь одно из языковых средств, помогающих скрывать детали реализации |