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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java vs .Net 
:(
    Опции темы
Karadul
Дата 20.2.2012, 19:40 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Такая холиварная тема smile Чем С# лучше явы? Лямбды есть, знаю, а как обстоит дело с классами? Можно написать так?

Код

class Myclass {
    ...
}

m = Myclass;
o = new m();


Как обстоит дела с выполнением на юнипсах?

Слышал, что благодаря ключевому слову async гораздо проще писать асинхронные сетевые приложения?
PM MAIL   Вверх
VSB
Дата 22.2.2012, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



PM MAIL   Вверх
Karadul
Дата 22.2.2012, 10:46 (ссылка)  | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Там многабукав, к тому же там нет ответа на мои вопросы - не написано, что реально может Mono, и про пример кода выше.
PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(Karadul @  20.2.2012,  18:40 Найти цитируемый пост)
Можно написать так?

а зачем так писать?
с какой целью проводить это сравнение вообще?
если "многобукав", то бери то что знаешь и используй, к чему эти холиварные вопросы? "умеет" "неумеет" всегда можно найти варианты, было бы желание...
PM MAIL ICQ   Вверх
Karadul
Дата 22.2.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Экскалупатор, тебя что-то обидело?


Цитата(Экскалупатор @  22.2.2012,  12:15 Найти цитируемый пост)
с какой целью проводить это сравнение вообще?

Ищу замену яве, думаю, стоит ли переходить на сисярп. 
PM MAIL   Вверх
502
Дата 22.2.2012, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


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

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



Цитата(Karadul @  20.2.2012,  19:40 Найти цитируемый пост)
Можно написать так?

не помню есть ли точно такое, но есть alias
Код

using m = Myclass;

PM MAIL   Вверх
Karadul
Дата 22.2.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



502, я имею в виду именно передать имя класса как параметр, а потом его инстанциировать. На замену фабрикам в яве, которые пробрасывают параметры конструктору. В питоне по крайней мере так можно.

Это сообщение отредактировал(а) Karadul - 22.2.2012, 13:54
PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(Karadul @  22.2.2012,  11:52 Найти цитируемый пост)
Экскалупатор, тебя что-то обидело?

нет. 
я задал вполне резонный вопрос, зачем так писать. мне кажется билдер будет лучше. просто, на мой взгляд, довольно странно делать какие то выводы только на основе того можно так написать или нет, можно написать по другому, добившись такого же результата.
PM MAIL ICQ   Вверх
Karadul
Дата 22.2.2012, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Экскалупатор @  22.2.2012,  14:24 Найти цитируемый пост)
мне кажется билдер будет лучше

Кто?

"Писать по-другому, добившись такого же результата" - это ява и есть, с универсальным костылем - (анонимным)КЛАССОМ, который заменяет и замыкания, и лямбды, и ссылки на класс из примера выше. Поверь мне, после питона так делать вовсе не хочется. К тому же, зная несколько довольно разных языков, в этих костылях начинаешь путаться.

К тому же ни на один вопрос ты так и не ответил, зато кто-то поставил 2 минуса посту.

Это сообщение отредактировал(а) Karadul - 22.2.2012, 14:47
PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



ну два минуса поставить сложно...
под билдером я имел ввиду паттерн который строит объекты. можешь рассмотреть ту же фабрику. чем она тебя не устраивает? ну есть еще такая штука как рефлексия, с помощью нее можно по названию. анонимный класс тут не причем.

Добавлено через 9 минут и 52 секунды
ты может опиши подробнее что хочется получить в результате(желательно с примерами), а то ты уперся в одну какую то возможность, а ответ может быть гораздо проще...
PM MAIL ICQ   Вверх
Karadul
Дата 22.2.2012, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подробнее здесь, все решилось фабрикой. Надо было следующее: серверу передается порт и класс, который инстанциируется при подключении клиента и параметром передается сокет. И про рефлексию там написано, она полностью убивает все плюсы статического языка. Билдер это фабрика? Ну по сути это КОСТЫЛЬ, который должен компенсировать отсутствие кой-чего и к которому надо привыкать после других языков, или есть какие-то преимущества перед моим примером вначале?

Но это дерейл.

PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



у тебя название класса, экземпляр которого нужно создать, передается по сети? довольно сомнительная затея, но это мое личное мнение...
так а чем фабрика по итогу не устроила? это как раз укладывается в ее назначение. у меня даже не появилось бы идеи использовать в этом месте что то другое. фабрика позволяет инкапсулировать все что нужно для создания этих классов в одном месте, что будет несомненным плюсом. а ты же хочешь в каждом случае создавать все заново, что несомненно приведет к дублированию и усложнит(и без того довольно странное) поведение... почему не подошла фабрика? smile 
PM MAIL ICQ   Вверх
502
Дата 22.2.2012, 16:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


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

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



Цитата(Karadul @  22.2.2012,  13:54 Найти цитируемый пост)
502, я имею в виду именно передать имя класса как параметр, а потом его инстанциировать

тогда может
Код

m = "Myclass";
o = new m();

не?

это вроде должно помочь


а ты подумал что будет если имя класса поменяется, как ты потом отследишь где надо поменять?
PM MAIL   Вверх
Karadul
Дата 22.2.2012, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(502 @  22.2.2012,  16:44 Найти цитируемый пост)
тогда может

Цитата(502 @  22.2.2012,  16:44 Найти цитируемый пост)
а ты подумал что будет если имя класса поменяется, как ты потом отследишь где надо поменять? 

Обсуждалось в том треде же. Поэтому не хотет.

В питоне такой код работает и довольно интуитивно пишется и читается:

Код

class C:
    pass

c = C
print c
# __main__.C
o = C()
print o
#<__main__.C instance at 0x00B59CD8>


Нде, судя по круглым глазам что там, что тут фича для статических языков довольно нестандартная. Но в сисярпе по крайней мере замыкания есть без костылей.
Ладно, вернемся к OP посту.

Добавлено через 12 минут и 10 секунд
Экскалупатор, ну почитай же тот тред, там все описано, пример кода здесь, а здесь то, что я взял. Фабрика - потому что костыль, который должен прикрыть непервоклассность классов и мне показался неинтуитивным (я до него допер не сразу), а в примере на питоне то, что хочется сделать - то и делаешь по кратчайшему пути.

Это сообщение отредактировал(а) Karadul - 22.2.2012, 17:18
PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(Karadul @  22.2.2012,  16:13 Найти цитируемый пост)
Фабрика - потому что костыль, который должен прикрыть непервоклассность классов и мне показался неинтуитивным (я до него допер не сразу), а в примере на питоне то, что хочется сделать - то и делаешь по кратчайшему пути.

что такое "непервоклассность классов"? что такое в твоем понимании "первоклассный класс"?
вопрос интуитивной понятности отдельная тема, для меня интуитивно понятно что передавать название класса что бы потом его по этому названию искать и создавать на основе этого объект - это нелепость, для меня интуитивно понятно, что фабрика будет лучше потому, что код будет в одном месте собран, а не по всей программе, но это все мое имхо и мне так понятно, как это у тебя я не знаю.

по поводу кратчайшего пути тоже весьма спорно, сколько раз сталкивался что кратчайший довольно часто не лучший, но это опять же мне так интуитивно понятно исходя из моего опыта и, опять же, попадает в область моего ИМХО.
*но если бы увидел что кто то в проекте такое замутил то сразу же этот человек получил бы в бубен.

ты определись что тебе надо, я думаю само собой разумеется тот факт что все языки устроены в какой то стемени похоже, но не одинаково. в шарпе скорее всего у тебя не получится сделать по "кратчайшему" в твоем понимании пути, да и я думаю тебя в этом пути никто не поддержит.
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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