• Какая разница между интерфейсами IEnumerable и IEnumerator?

    Nipheris
    @Nipheris Куратор тега C#
    Та сущность, по которой пробегают, должна реализовывать IEnumerable.
    Та сущность, которая пробегает, должна реализовывать IEnumerator (обычно это вложенный, нередко приватно объявленный класс).

    То что вы сказали я к сожалению не понял.
    Ответ написан
    Комментировать
  • Как установить английский язык для исключений?

    System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("en-US");

    Установит настройки в текущем домене приложения
    Ответ написан
    2 комментария
  • Как получить public key SSL сертификата, имея сам сертификат и private key?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    //COPY01 EXEC PGM=IEBGENER
    А разве фишка LE не в том как раз, что он сам все делает, не требуя от юзера знаний по сертификатам?

    JFYI: То, что ниже текста BEGIN CERTIFICATE - и есть публичный ключ, он же сертификат.
    Ответ написан
    Комментировать
  • Почему Image.FromStream бросает "Недопустимый параметр"?

    @cicatrix
    было бы большой ошибкой думать
    Из вашего вопроса мало что понятно, попробую задействовать телепатию.
    Скорее всего, вы разрабатываете веб-приложение.
    Скорее всего, вы пытаетесь загрузить файл через веб-интерфейс.
    Если мои предположения верны, то стоит начать с того, что, наверное, единственным на текущий момент способом загрузить файл из браузера является POST запрос в формате multipart/form-data. Если это так, что входящий поток из запроса не содержит только ваш файл. Двоичные данные картинки "обёрнуты" ещё и дополнительной служебной информацией. Пройдите по ссылке, в статье на Википедии прямо пример есть содержимого вашего входящего потока.

    Если вы по какой-то причине пользуетесь веб-сокетами (причём, реализующими протокол http), то, чтобы вам помочь, нужно больше деталей.
    Ответ написан
    5 комментариев
  • Как правильно использовать исключения?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну приведу простой пример. У вас есть функция которая должна открывать соединение с базой данных/читать из файла/подключаться к сокету... словом любая функция возвращающая некий ресурс, при помощи которого в дальнейшем будет осуществляться доступ к чему-то там.

    Функция должна вернуть какой-то результат, причем определенного типа. Что вы будете делать в случае ошибки? А как уведомить разработчика что именно пошло не так?

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

    Если вы используете конструкцию try/catch в использующем эту функцию коде, то вместо крэша у вас вызовется один из обработчиков catch (вы можете спускаться по иерархии классов, задавая различное поведение для разного рода ошибок), возможно произведете какие-то уточнения в данных, переспросите пользователя и программа продолжит работу совершенно нормально.
    Ответ написан
    2 комментария
  • Как правильно использовать исключения?

    Illivion
    @Illivion
    Отвечаю по C#. Исключение должно выбрасываться в любом случае, если метод не может выполнить задачу, которая ему назначена. Метод CreateUser() не смог создать пользователя? Исключение! Метод Connect() не смог подключиться за заданный интервал времени? Исключение. Если не ошибаюсь, так писал Рихтер.
    Ответ написан
    1 комментарий
  • Как правильно использовать исключения?

    if-elsе (switch) используется в случаях-
    "если не так, то попробуем с другой стороны",
    то есть, это выбор вариантов исполнения.
    а exception-
    "если не так, то никак (потому, что ....)",
    то есть остановка исполнения, и старт каких либо заключительных действий (например, записать ошибку в лог и отправить пользователю красивую картинку/заглушку).
    таким образом, "if" - это штатный режим, а а exception- аварийный
    Ответ написан
    1 комментарий
  • Как правильно использовать исключения?

    Тут достаточно просто все.
    Исключения помогают проскочить участок кода при выполнении определенных условий.
    Причем, при коде без вызовов функций - всегда можно заменить на if/else, но код будет многовложенным (один if в другом). Но такой код естественно давно никто не пишет.

    А при коде с вызовом функций это становится и вовсе невозможно (нельзя начало if написать в одном методе, а закрывающую скобку в другом). И нам приходится всю цепочку if передавать по стеку вызовов вверх.

    Идея же исключений такая:
    1. У нас есть алгоритм, который должен работать по заданной схеме. Мы нигде на уровне выше не проверяем корректность возвращаемых значений или правильность выполнения уровня ниже - он должен выполниться правильно или не выполниться. Это условие рождается из понимания инкапсуляции - каждый отвечает за свой кусок кода.
    2. Если в какой момент момент, метод (кусок кода), отвечающий за определенную функциональность понимает, что не может выполнить назначенную ему операцию - он сообщает об этом на уровень выше.
    3. Уровень выше может обработать исключительную ситуацию, либо (если не знает как) - передать исключение еще уровнем выше по стеку вызовов.

    Т.е. резюмирую: у нас есть код, который должен в 90% случаев обрабатываться по одному алгоритму и в 10% случаях могут возникать ситуации, когда этот алгоритм в одной конкретной части кода - пойдет по другому сценарию.
    Т.е. ваша задача писать код именно таким образом, чтобы исключения были лишь подстраховкой, а не частью основного алгоритма.

    Интересный момент реализации исключений в lisp: там можно выполнить код вызвавший исключение повторно (например попытаться подключиться к базе второй раз средствами самого исключения).
    Ответ написан
    Комментировать
  • Может ли произойти такая ситуация с исключениями?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Да, если швырять исключение из деструктора объекта, который был вызван во время обработки
    другого исключения.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы recycler view прокручивался не отдельно, а вместе с элементом перед ним?

    mitaichik
    @mitaichik
    Тебе надо юзать CoordinatorLayout + AppBar + разные типы поведения. Тут все описывать нет смысла - вот пару статей https://habrahabr.ru/post/270121/ https://android.jlelse.eu/scrolling-behavior-for-a...
    Ответ написан
    Комментировать
  • Хочу "шагать" весь код C# в VS, как это осуществить?

    @kttotto
    пофиг на чем писать
    Самый простой способ, как я считаю, посмотреть что внутри, это через Решарпер и его функцию Decompile methods.
    Находится это options/External Sources и поставить все галочки внутри Navigation to Sources.

    Если без Решарпера, то чтобы дебажить исходники .net, у Вас должны быть скачаны отладочные pdb файлы. Для этого так же нужно сделать некоторые настройки в vs.
    В первую очередь желательно выставить сервер для скачки отладочных символов Tools/options/Debugging/Symbols ставим галочку Microsoft Symbol Servers, можно тут же указать папку для кеширования Ваших символов и нажать кнопку Load all Symbols, чтоб они лишний раз не подгружались каждом запуске проекта.
    Дальше идем в Tools/options/Debugging/General и выставляем галочки Enable .NET Framework source stepping. У Вас сразу спросят, подгрузить ли отладочные символы, на что Вы соглашаетесь. При этом у Вас отключиться опция "только мой код".

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

    Недавно я на это вопрос уже отвечал тут
    Ответ написан
    2 комментария
  • Хочу "шагать" весь код C# в VS, как это осуществить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    все просто - https://i.imgur.com/HCEUEq0.png

    ps

    другой вопрос, если хочется залезть в чужие сборки (то что называется 3я сторона)... но тогда нужен не
    Решарпер и его функцию Decompile methods
    а RedGate Reflector пираты в помощь... если жаба душит..
    Ответ написан
  • Верно ли понимаю TPL и асинхронность?

    Nipheris
    @Nipheris Куратор тега C#
    1. Да, задача может исполниться где угодно. Более того, вы не поверите, но некоторые таски вообще могут нигде не исполняться, т.к. исполнять нечего (см. п. 5). Таск - это прежде всего абстракция значения, которое будет получено в будущем, и для получения которого возможно нужно что-то посчитать или просто подождать. См. futures and promises.
    2. Ну не обязательно в новом потоке, может быть выполнится и в существующем потоке если в пуле потоков есть свободный.
    3. Асинхронные операции ввода-вывода называются так потому, что выполняются через асинхронное API операционной системы. Нет никакого смысла использовать асинхронную операцию, но делать это в отдельном потоке созданном специально для этой операции. Потоки нужны прежде всего для того, чтобы эффективно нагружать исполнителей, т.е. процессоры (в том числе разные их ядра).
    4. Можно в новом, можно в потоке из пула. Так или иначе, если операция предполагает именно расчёты, а не ожидание ввода/вывода, то безусловно это тот случай, когда имеет смысл переложить нагрузку на другой поток.
    5. Если представлять таск как одну из сторон "трубы", по которой прилетит результат асинхронной операции, то Task - это принимающая сторона, а TaskCompletiotionSource - передающая (производящая результат) сторона. Когда вы создаёте таск из кода который нужно выполнить, этот код становится передающей стороной. Но Task абстрагирует любую асинхронную операцию, не только ту где нужно долго что-то считать. Возможно вам нужно дождаться одного байтика из сети, и операция будет считаться завершенной. Во всех тех случаях, когда вы хотите самостоятельно "произвести" результат для какого-то таска (а сам таск отдать "наружу" другому коду, например вернуть из функции), вы можете использовать TaskCompletionSource.
    (Кстати, в C++ принимающая сторона называется future, а передающая (производящая) - promise. В JS принимающая сторона называется Promise, а передатчиком является функтор).
    Ответ написан
    1 комментарий
  • Почему зависает GUI у приложения сервера?

    @tex0
    У вас сервер работает в синхронном режиме.
    Когда вы вызываете listenSocket.Accept() этот вызов блокирует текущий поток до тех пор, пока серверный сокет не среагирует на подключение клиента.
    Используйте асинхронные операции аля TPL ну или можно по старинке Begin-End
    Ответ написан
    2 комментария
  • Как узнать API которое использует приложение Android для работы с своим сервером?

    TranE91
    @TranE91
    Senior Android Engineer
    Вариантов несколько:
    1) Поставьте прокси сервер(например Chrales) и проснифайте трафик. Возможно потребуется поставить свой сертификат если там SSL.
    2) реверс инжиниринг apk. Затем поиск по src по пересечениям на http:// || https//
    Ответ написан
    2 комментария
  • Как отладить сайт в мобильных браузерах?

    villiwalla
    @villiwalla
    HTML-верстка
    https://developers.google.com/web/tools/chrome-dev...
    С Сафари также только нужен мобильный яблока и сафари на десктопе
    Ответ написан
    Комментировать
  • Зачем может понадобиться сокрытие методов интерфейса?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Array явно реализует ICollection.Count, чтобы не засорять интерфейс одинаковыми свойствами.
    Ответ написан
    Комментировать
  • Клиент на Upwork угрожает международным судом, возможно ли это?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Типичное поведение прожравшего деньги посредника))))
    Вчера клиент мне написал что его клиент оформляет иск

    Ключевой момент выделил жирным. Вопрос вообще ниочем. Работай дальше по своему плану, есть оплата - есть работа, нет - нет. Фантазер ты однако, это в бизнесе губительно, завязывай с фантазиями)))
    международный суд
    - поржал)))
    Ответ написан
    3 комментария
  • Какие инструменты для разработки мобильного приложения на базе веб-технологий сейчас есть?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Есть несколько вариантов.

    js-to-native, нативное приложение с бизнес-логикой на js и нативными виджетами:
    • react-native
    • NativeScript — на выбор angular, с недавних пор vue, чистый js
    • weex — аналог react-native для vue.js, из коробки так же работает под веб. С документацией пока грустновато, но народ работает.

    Вроде как из этого react-native самый проработанный и стабильный. Имел дело только с ним, если это стабильно и проработанно, то в остальное даже страшно заглядывать (хотя NativeScript+ionic мне хвалили). Выглядит нативно на каждой платформе. Знания html и css по большей части не пригодятся: тэги/компоненты свои, css-свойства работают не все и не во всех сочетаниях.

    webview, гибридное приложение, браузер на весь экран:
    • cordova, старейшее живое решение

    Вроде как взял html, завернул и готово. Иногда полученное приложение несколько притормаживает, хотя я думаю что если это каталог товаров или меню ресторана, то проблем быть не должно. Выглядит одинаково на каждой платформе.

    прочее:
    • *.webmanifest и PWA, нечто среднее между установкой приложения и добавлением сайта в закладки.

    По идее идеал, часто юзаешь сайт — типа ставишь приложение, редко — открываешь из браузера. У разработчика голова не болит как подружить веб, iOS и Android: везде выглядит и работает одинаково. На практике поддержка пока что пятнистая.
    Ответ написан
    5 комментариев