Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> with.... C# 
V
    Опции темы
Vit
Дата 15.4.2007, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



В дельфи есть удобный оператор with позволяющий иногда очень удобно сокращать код на подобие следующего:

следующий код 
Код

MySomeForm1.MySomeADOQuery.parameters.parambyname('something1').value:='something1';
MySomeForm1.MySomeADOQuery.parameters.parambyname('something2').value:='something2';
MySomeForm1.MySomeADOQuery.parameters.parambyname('something3').value:='something3';
MySomeForm1.MySomeADOQuery.parameters.parambyname('something4').value:='something4';
MySomeForm1.MySomeADOQuery.parameters.parambyname('something5').value:='something5';


можно перезаписать в гораздо более компактном ввиде:

Код

with MySomeForm1.MySomeADOQuery.parameters do
begin
  parambyname('something1').value:='something1';
  parambyname('something2').value:='something2';
  parambyname('something3').value:='something3';
  parambyname('something4').value:='something4';
  parambyname('something5').value:='something5';
end;


А в C# есть что-то подобное?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Idsa
Дата 15.4.2007, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Я создавал похожую тему не так давно:
Ссылка на топик
Там пришли к выводу, что это лишняя конструкция, хотя я считаю, что если сильно не извращаться, то это очень хорошая вещь. 
Если искать аналогии, то более-менее походит на with вот такая конструкия из третьего Фреймворка:
Код

Type obj = new Type() {text = "..." ...}



--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Vit
Дата 15.4.2007, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата(Idsa @  14.4.2007,  20:31 Найти цитируемый пост)
Там пришли к выводу, что это лишняя конструкция



Это лишь форма записи, для компиллятора должно быть по фиг, а то что кому-то удобно или нет, дык если такое есть оно ж никому не мешает, кому неудобно - непользуется ей, а кому удобно - пользуется... Жаль что такого нет, очень жаль... Мне было бы не лишним.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Idsa
Дата 15.4.2007, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Vit @  15.4.2007,  06:01 Найти цитируемый пост)
Жаль что такого нет

Угу :(


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Любитель
Дата 15.4.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(Idsa @  15.4.2007,  05:31 Найти цитируемый пост)
Если искать аналогии, то более-менее походит на with вот такая конструкия из третьего Фреймворка:

Во-первых - не из третьего фреймворка, а из третьего шарпа. Разные вещи, однако smile
Вовторых, на мой взгляд сходство очень далёкое. Ента конструкция просто позволяет при создании объекта установить значения свойств. Я не говорю, что сходства нет совсем, но уж слишком оно тонкое. smile


--------------------
PM MAIL ICQ Skype   Вверх
Idsa
Дата 15.4.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Любитель @  15.4.2007,  15:35 Найти цитируемый пост)
Во-первых - не из третьего фреймворка, а из третьего шарпа. Разные вещи, однако 

Конечно, разные.... но 3-й C# входит в 3-й ФреймВорк, поэтому считаю свою фразу корректной smile.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
srd
Дата 15.4.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: нет
Всего: 49



Конструкции такой нет, но чтоб меньше стучать по клавиатуре, можно обойтись временной переменной с укореченным именем.

Код

КакойТутНуженТип params = MySomeForm1.MySomeADOQuery.parameters;

params.parambyname('something1').value:='something1';
params.parambyname('something2').value:='something2';
params.parambyname('something3').value:='something3';
params.parambyname('something4').value:='something4';
params.parambyname('something5').value:='something5';


Ы?


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Любитель
Дата 15.4.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



srd, := - это не шарп (копи-паст не рулит smile )

Цитата(Idsa @  15.4.2007,  15:41 Найти цитируемый пост)
но 3-й C# входит в 3-й ФреймВорк,

Разве? Если я не ошибаюсь - это не так (может ошибаюсь smile ).


--------------------
PM MAIL ICQ Skype   Вверх
Exception
Дата 15.4.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Честно говоря, я уже привык по возможности задавать все необходимые свойства в конструкторе, а, если нужно обращаться к свойству, делать на него ссылку.

Код

var pars = MySomeForm1.MySomeADOQuery.parameters; // то есть вместо var пишем тип :)  вот они последствия программирования на JavaScript :)
pars.parambyname("something1").value = "something1";
pars.parambyname("something2").value = "something2";
// et cetera


Цитата(Idsa @  15.4.2007,  16:41 Найти цитируемый пост)
3-й C# входит в 3-й ФреймВорк


Смелое заявление smile . Особенно, если учесть, что C# 3.0 ещё не был полноценно выпущен, а .NET 3.0 был отрелизен уже давно.
P.S. C# 3.0 + .NET 3.0 будет зваться .NET 3.5.
P.P.S. Хватит оффтопить smile .

Добавлено @ 17:09
Ой, srd опередил smile .

Это сообщение отредактировал(а) Exception - 15.4.2007, 20:09
PM   Вверх
Vit
Дата 15.4.2007, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Всем огромное спасибо за объяснения!


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0816 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.