@CSharpChatЭта группа больше не существует

Страница 777 из 1888
Владимир
14.04.2017
13:32:29
str[0] = new object()
Там такого нет. Прокатит. Мм, код не мой, но как корректно реализовывать абстрактные свойства, которые в наследниках будут иметь разные типы?

Igor
14.04.2017
13:33:17
который реально юзают, а не для "поиграться"
На JVM реально юзаются - Clojure (но он динамический) и Scala Еще есть Frege/Eta - порты Haskell, но я не уверен что на них можно писать промышелнные программы. На .NET только F# - он синтаксически ближе к Haskell, но там есть C#-style классы (те при желаение можно делать OOP) https://youtu.be/eQzF8RrLM6s?t=4m7s - авторитетное мнение о языке ?

Владимир
14.04.2017
13:33:47
can
Я понимаю, поэтому и варнинг. Но вдруг мог где-нибудь грохнуться при кастинге, поэтому и спросил.

Google
Сергей
14.04.2017
13:34:49
Так а в чем вопрос?

Владимир
14.04.2017
13:36:12
Вообще, уже в этом: Как корректно реализовывать абстрактные свойства, которые в наследниках будут иметь разные типы?

Сергей
14.04.2017
13:37:51
Это не поддерживается в шарпе, но есть пропоузал. Ты лучше пример приведи

Владимир
14.04.2017
13:40:19
public abstract class CustomField { ... public object Value { get; set; } } public class DateCustomField : CustomField { public DateTime Value {get;set;} } етк. Сейчас вроде все в обджект суется. Потом, как повезет.

Меня интересует, как это сделать можно было бы красиво.

Mikhail
14.04.2017
13:42:34
начни лучше с контекста задачи а не со своего варианта решения

Сергей
14.04.2017
13:43:07
Andrew
14.04.2017
13:43:36
Mikhail
14.04.2017
13:43:58
на джинериках лучше замути
воттож... хасподь им женерики дал, а они лисапеды строют

Владимир
14.04.2017
13:44:18
на джинериках лучше замути
Будет лапша из проверок типов в ToString(), например

Там таких типов штук 16

у каждого своя логика валидации, например

Google
Andrew
14.04.2017
13:44:45
Там таких типов штук 16
интерфейсы тоже бог дал

сделай штоб от одного интерфейса шло у всех объектов

Владимир
14.04.2017
13:45:14
интерфейсы тоже бог дал
Какого типа будет свойство Value в интерфесе?

Andrew
14.04.2017
13:46:17
Какого типа будет свойство Value в интерфесе?
интерфейс - чтоб тип не проверять, а тип у него будет каким класс инстанцируешь

Mikhail
14.04.2017
13:47:06
у каждого своя логика валидации, например
дык может это означает что ты где-то напортачил и надо абстракции чуть иначе построить?

Владимир
14.04.2017
13:47:07
начни лучше с контекста задачи а не со своего варианта решения
Есть типа задачи. Пользователь может накидать этим задачам свои свойства разных типов. Нужно это все валидировать, отображать, еще что-нибудь делать.

Andrew
14.04.2017
13:47:39
https://msdn.microsoft.com/ru-ru/library/sz6zd40f.aspx предпоследий пример показывает куда интерфейсы пихать в джинериках

Mikhail
14.04.2017
13:48:09
а зачем тебе их все наследовать от одного абстрактного класса?

Владимир
14.04.2017
13:48:33
интерфейс - чтоб тип не проверять, а тип у него будет каким класс инстанцируешь
Ты предлагаешь абстрактный класс на интерфейс заменить? Ну допустим, хотя у них есть и общая логика. Что это изменит?

Сергей
14.04.2017
13:49:06
Я уже решил проблему. byte[] я получал от Epplus методом GetAsByteArray или типа того и он возвращал вдвое большее кол-во байт. Если просто читать сгенерированный файл, то все как надо

Владимир
14.04.2017
13:49:44
https://msdn.microsoft.com/ru-ru/library/sz6zd40f.aspx предпоследий пример показывает куда интерфейсы пихать в джинериках
И как это избавит от лапшы? Нужно дейттайм в ToString() привести к строке определенного вида. Как ты это сделаешь в дженериках без проверки текущего типа?

Andrew
14.04.2017
13:49:47
Ты предлагаешь абстрактный класс на интерфейс заменить? Ну допустим, хотя у них есть и общая логика. Что это изменит?
дабля, юзай джинерики, у джинерик типа пропиши ограничение интерфейсом, тогда заинстансить можно только с типом реализующим интерфейс и тогда в абстрактном классе не нужно тип проверять

Mikhail
14.04.2017
13:50:03
Ты предлагаешь абстрактный класс на интерфейс заменить? Ну допустим, хотя у них есть и общая логика. Что это изменит?
еще раз - просто пересмотри свои абстракции и все. то, что ты пытаешься выстроить логически плохо связано

Владимир
14.04.2017
13:50:23
Mikhail
14.04.2017
13:51:00
дык я не знаю что у тебя должно происходить - вот в чем проблемес. из объяснения задачи не очень понятно. ну задачи и задачи, и чо? зачем тебе общий абстрактный класс?

валидацию делегируй классам наследникам если она у всех разная

Владимир
14.04.2017
13:51:40
Сейчас в абстрактном классе не проверяются типы, если что. Весь специфичный функционал лежит в наследниках.

Владимир
14.04.2017
13:52:17
так а для чего он вообще нужон?
Есть общий функционал для всех одинаковый.

Google
Владимир
14.04.2017
13:52:28
Не копипастить же его в 16 классов

Mikhail
14.04.2017
13:52:32
Есть общий функционал для всех одинаковый.
вот его через жинерики и сделай

Владимир
14.04.2017
13:53:01
Абстрактный класс сделать дженериком, а потом наследоваться от него?

Mikhail
14.04.2017
13:53:09
нет

Владимир
14.04.2017
13:53:11
Ну ок, выглядит адекватно

что нет

как тогда -_-

Mikhail
14.04.2017
13:53:36
я имею ввиду общий функционал делегировать стороннему классу-дженерику.

Владимир
14.04.2017
13:54:05
типа обернуть эти 16 штук в сторонний дженерик класс?

Надо обдумать.

Mikhail
14.04.2017
13:54:50
ок, попробуем иначе) какой общий функционал у этих классов есть?

будем вместе фантазировать)

или ты можешь использовать паттерн "шаблонный метод" попробовать. но зависит от того - что там за общий функционал.

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

Владимир
14.04.2017
13:58:56
Видимое поле или нет, логгировать его или нет, группа, к который он принадлежит, действия, с этим всем связанные. Не важно, там много.

то есть у тебя будет у абстрактного класса общий метод который для получения специфичных данных дергает абстрактные методы, которые в каждом наследнике реализованы по-своему
Сейчас так и сделано... Вопрос изначально был в том, что есть некоторое свойство, которое в реальности имеет РАЗНЫЕ типы в наследниках - Value. А в асбтрактном классе лежит как обджект. И туда суются эти разные типы. Выглядит криво. Я спросил как это сделать красиво, вы мне начали про дженерики заливать. Идея с дженерик-абстрактным классом была неплоха мб. Можно сделать T Value {get;set;}.

Владимир
14.04.2017
14:03:44
Хм. Ну мне как минимум к нему биндить надо. Но можно сделать string свойство, которое будет дергать виртуал методы.

Andrew
14.04.2017
14:33:32
Google
Igor
14.04.2017
14:34:51
Ребусы :D

Mikhail
14.04.2017
14:35:14
Владимир
14.04.2017
14:36:56
Ilya
14.04.2017
14:51:24
Офтоп. Почему про неё шутят в контексте взрывов?



Andrew
14.04.2017
14:51:27
Схема еще сложнее, я сильно так упростил.
Короче чтоб получить классы с разного типа свойствами но от общей базы есть два основных пути, жинерик, можно отнаследоваться с конкретным типом от него MyClass: MyParent<WantedDatatype> и будя норм

Mikhail
14.04.2017
14:57:45
в дотнетфиддле было б удобнее)

Alexey
14.04.2017
14:58:16
Офтоп. Почему про неё шутят в контексте взрывов?
походу, хорошо всё взрывает: https://www.youtube.com/watch?v=O4tbOvKwZUw

Andrew
14.04.2017
14:59:53
в дотнетфиддле было б удобнее)
мне прост замарин был недавно нужен и вот сейчас корю себя что не в вскоде говнякнул

аа, ты про постилку кода

Mikhail
14.04.2017
15:00:37
агась

Andrew
14.04.2017
15:01:29
в них с мобилы говёно, забочусь о людях, а в гист лень кидать, ну и хотел повыебываться чорным замарином на макоси с зелёными писалками

Axm
14.04.2017
15:02:07
Andrew
14.04.2017
15:03:09
Мобильные приложения через замарин норм получаются?
приложения норм, а среда разработки говно

Vyacheslav
14.04.2017
15:03:36
А в чем проявляется гоано?

Andrew
14.04.2017
15:07:08
нестабильность, в замарине со скриншота не работают хоткеи, с винды если так мак надо на привязи держать, если не формс, вс фор мак риальне лучше замаринстудии, но тож пиздец как до редактирования axml доходит, я короч писнул, сказал "ну нахер" и закрыл. Мне сейчас проще нативную разработку под иос пинать продолжить(в ведре уже давно и так) чем с замарином ебаться

Dmitry
14.04.2017
15:07:35
Редактор андроидных хмлей ужасен

Andrew
14.04.2017
15:07:45
да

Google
Andrew
14.04.2017
15:08:03
сториборды ещё куда ни шло

там с икскодом конкуренция, а он гораздо более слабый, чем ведройд студия продукт

Dmitry
14.04.2017
15:08:29
Угу, со сторибордами жить можно

Slava
14.04.2017
15:08:56
а доки по верстке под ios есть где?

не могу найти)

Igor
14.04.2017
15:09:11
Угу, со сторибордами жить можно
Но грусно (особенно если надо поддерживать < iOS 9.0 и нет stackview)

Slava
14.04.2017
15:09:16
или там кодом верстают?)

Dmitry
14.04.2017
15:09:40
Мышкой или кодом

Slava
14.04.2017
15:09:56
вот по верстке мышкой и не могу найти ничего

Dmitry
14.04.2017
15:10:32
Да полно вроде инфы. Raywenderlich.com , например

Slava
14.04.2017
15:11:09
Владимир
14.04.2017
15:12:35
Понял, благодарю.

Потому что она сильнейший в истории маг взрывов!

Andrew
14.04.2017
15:15:19
вот по верстке мышкой и не могу найти ничего
это проходил? https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html#//apple_ref/doc/uid/TP40015214-CH2-SW1

начальный квест

Andrew
14.04.2017
15:15:41
в айтюнсе курс от стенфорда оеренный

https://itunes.apple.com/us/course/developing-ios-9-apps-with-swift/id1104579961

там уже и 10 вышел

Страница 777 из 1888

Эта группа больше не существует Эта группа больше не существует