![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
First class object - значит, что его можно сохранить в переменную. В яве это только примитивные типы и обьекты.
Искать и создавать? Блин, ты упорно не понимаешь или не хочешь понять, что я хочу сделать. Не название класса (строку), а ссылку на класс. А в примере на питоне он не в одном месте? Если язык это не может - то не лучший. Ну дело не в том. Насколько я понимаю, фабрика сделана для обхода определенных ограничений статических языков, людям, знающим языки, где такое не надо, тяжело понять, что же им делать. До фабрики я дошел своим умом и не сразу. Поправь меня, если это не так. А то ты так активно против, но ни одного нормального аргумента (кроме того, что шарп похоже так не может) я так и не услышал. И вообще думай шире. Не сярпом (явой итд) единым. Похоже, есть много вещей, о которых ты не догадываешься ![]() Замечал у жавоидов подобное - несмотря на местами архаичные языковые конструкции, стоит заикнуться, например, о том, что хорошо бы в 2012-то году уже замыкания иметь, как им рвет пердак и они, истекая слюнями, начинают доказыать, что я чмо, как будто я их маму задел. Может это синдром единственного языка? С моими не очень богатыми знаниями явы и питона я не бросаюсь на людей, которым в них чего-то не хватает (разве что это из области, в которой я совсем мало понимаю). |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
я не пытаюсь ничего доказывать, я пытался сказать что нужно просто определиться, любую ситуацию можно разрулить на любом языке, только разными способами, заметь я не разу не сказал что шарп хорош или плох, как и ява как и любой другой язык, статический или нет. повторяя твои слова не питоном(или любым другим языком)...
то о чем ты можешь или не можешь догадаться определяется только опытом использования. мне к примеру никогда не приходилось решать задачи в которых по какой то причине могла понадобиться ссылка на класс(но не на объект этого класса). к примеру я считаю что подобная функциональность добавила бы мне проблем в проектах, хотя бы в той простой вещи что инициализация объектов будет расползаться по всему проекту. я не писал ничего на питоне, но на сколько я понял то не в одном, ты хочешь передать ссылку на класс и там, куда ты ее передал, проинициализировать объект. соответственно мест становится много. опять же может быть я ошибаюсь, но я понял это так. ))) да, я никогда не говорил что знаю все. по большому счету мне не нравится только одна вещь, это когда люди начинают все сравнивать между собой по принципу: лопата плоская и ей удобно копать, а грабли с зубцами и ими копать неудобно. и сразу же обычно следует вопрос: а как сделать так что бы у граблей все зубцы превратились в плоскость как у лопаты, что бы было удобно копать, потому что раньше я копал лопатой и мне это нравилось, но теперь я хочу копать граблями, но мне неудобно!!! пример конечно корявый, но думаю суть ясна. Это сообщение отредактировал(а) Экскалупатор - 22.2.2012, 23:43 |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
Можно, но зачем? ![]() Мне показалось, что твоя любовь к разрулению исходит от того, что ты другого просто не видел. Где разрулять не приходится. И ОСОБЕННОСТИ ЯЗЫКА страшны не столько сами по себе, сколько заставляют пердолиться в срачло при переходе с похожих вещей. Например, в lua нет ооп, через какие-то танцы оно эмулируется, но когда я увидел это, я решил, что я без него обойдусь - без ооп и вообще без lua. Для тебя это может быть и нормально, а мне не хочется придрачиваться к каждому языку, с которым я соприкасаюсь. Есть же общая теория, вроде ООП, которая с небольшими отличиями одинакова.
Покажи мне в моем примере, где она расползается? И чем это принципиально отличается от фабрики? Там ты тупо пробрасываешь параметры конструктору. Это намек на то, что ява/шарп для копания не предназначены, на них можно только наступать? ![]() |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
))) это печально. но ты упорно не хочешь понимать про что я тебе пытаюсь объяснить. пойми вещи существуют в этом мире не для того что бы находиться в соответствии с твоими ожиданиями, и языки программирования тут не исключение. я просто пытался сказать что выбор того или иного языка не должен основываться на опыте использования предыдущих языков, в каждом из них всегда можно найти свои плюсы и минусы. по теме: почитай что такое Generic Class, может быть тебе поможет. |
|||
|
||||
kulikov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Для разработки по windows лучшего средства чем .net/c# не существует в природе. Однако, не смотря на всю пародию вроде моно, технология это не кросплатформенная. Если хотите разрабатывать не только под окнами, тогда лучшее решение это ява. Да, существует много технологий, но ява самая оптимальная.
Однако, лично меня, попытка преобрести хоть какие скилы на яве ввергает в уныние. Уж очень она устаревшая, сравнительно с c#. Сейчас правда есть разрабатывается проект Котлин. Это будет ЯП, больше похож на c# нежели на яву и он будет компилироваться в байт-код. |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
Очень интересно, а на чем же он должен основываться? На удобстве рисования гуя (ну и это тоже, кстати)? ![]() |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
Видел сервера на сисярпе. Если 2 процента красноглазиков на десктопе меня не интересует, то на серверах их вовсе не 2%, особенно на low end. Отсуда вопрос - при минимальном или отсуствующем гуе можно будет запустить программу на питухоси?
Я вобщем-то не против мультиплатформенности, но не ценой того, что на моей родной платформе от гуя приходится рыдать, а из программ, которые я знаю, с гуем, который можно назвать нормальным, большинство - IDE для явы ![]() Можешь привести примеры, чем шарп лучше? Как обстоит дело с совместимостью в пределах windows? На 2000 можно поставить максимум Framework 2.0. Остальные ставятся на любую винду? |
|||
|
||||
kulikov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
||||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
||||
|
||||
kulikov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
||||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
||||
|
||||
erm0l0v |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: нет Всего: 1 |
Есть много способов реализовать фабрику на C# выбор конкретного способа завит от задачи.
Я бы сделал так:
здесь T это тип базового класса или интерфейс который необходимо создать. В методе RegistClass регистрируем тип а в методе CreateClass создаем объект для этого типа. Кроме того есть библиотеки (например от Microsoft) которые уже реализуют фабрику с кучей дополнительных возможностей. Использовать оператор new как у вас в примере насколько я знаю в C# нельзя. Вместо этого вы можете использовать например такую конструкцию:
где t это переменная типа Type |
||||
|
|||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
erm0l0v, а как передать параметры конструктору?
|
|||
|
||||
erm0l0v |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: нет Всего: 1 |
Доступно множество перегрузок метода
Одна из них выглядит так:
Вторым параметром принимается массив объектов: это как раз и будут параметры для передачи в конструктор, а ключевое слово params позволяет использовать функцию более прозрачно:
Вот так например можно передать в конструктор переменную типа int и "Word" |
||||||
|
|||||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
А что будет при несовпадении типа / количества обьектов? Если исключение при выполнении, то это не нужно.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |