Задать вопрос
  • Чем отличается Visual C# от C#?

    Роман: это я про совместимость кода, версии C#, .NET и прочий зоопарк :-)
  • Чем отличается Visual C# от C#?

    Роман: есть, как минимум спецификации для разных версий языков. Видимо не успевают оформлять :-)

    Текст и структура спецификаций разный, как следствие возможна разная трактовка написанного (теми, кто будет реализовывать поддержу языка). Мельком глянул, ISO/IEC 23270:2006 выглядит более подробней, чем ECMA-334. Microsoft представляет самые свежие данные, но как-то все поверхностно.

    У Mono и других подобных проектов в самом начале были юридические ограничения со стороны Microsoft, хотя они касаются .NET в целом, а не языка. Это мешало развитию и усиливало отставание. Сейчас, да, возможно станет лучше, но прошлое уже не изменишь, если есть серьезные ответвления и их будут продолжать развивать, то со временем различия могут стать ощутимыми.

    Всякие фишки добавляемые в Visual Studio - это тоже серьезная проблема. Например из последнего, интерполированные строки ($"hello {username}") можно использовать в коде любой версии C#, но только в Visual Studio 2015, со всеми вытекающими последствиями. Не понимаю, зачем так делать. Хотя нет, понимаю, это хитрый способ пересадить всех на новые версии Visual Studio, а там глядишь и до Windows 10 недалеко :-)

    Все эти мелочи приводят к мелким различиям. Отсюда и язык Microsoft Visual C#, уже местами несовместимый с C#. Если так будет продолжаться, лет через десять разрыв увеличится и вопросы «Чем отличается Visual C# от C#?» или «С чего начать: Visual C# или C#?» будут вполне актуальны.
  • Как работать с классами в цикле?

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

    В представленном коде непонятно, как делается вывод и для чего нужен цикл. Нужно больше кода.

    Набросал пример, где все работает правильно:
    ideone.com/0xLLPc
    Четыре итерации, четыре экземпляра класса, на выходе четыре значения: 0 1 2 3
  • Как составить регулярное выражение исходя из следующих условий?

    Валентин: можно любые символы использовать:

    \NNN - десятичный ASCII код (один байт: 0-255). Например: \032 - пробел, \255 - буква "я" в Windows-1251;
    \xNN - шестнадцатеричный ASCII код (один байт: 0-255 (00-FF)). Встречается чаще всего. Например: \x20 - пробел; \xFF - буква "я" в Windows-1251 ;
    \uNNNN - шестнадцатеричный код Unicode (два байта: 0-65535 (0000-FFFF)). Например: \u0020 - пробел, \u044F - буква "я", \u263A - сайлик и т.п.

    Можно использовать символ как есть, но с непечатаемыми, некоторыми спец.символами и символами unicode могут быть проблемы, поэтому надежней использовать коды символов.
  • Как составить регулярное выражение исходя из следующих условий?

    Валентин: x - указывает не то, что число шестнадцатеричное. В регулярном выражении можно десятичные использовать: \001, а в unicode с префиксом u: \u0001.

    В данном случае это ничего не означает, можно использовать любой символ (включая NUL (\x00)).

    Да, главный смысл исключить пересечение с вводимыми символами. Непечатаемый символ пользователь просто так ввести не сможет и вероятность возникновения с этим проблем равна практически нулю.
  • Почему выходит разное отображение сайта при перезагрузке страницы?

    Много файлов стилей. Если что-то не загрузится, то на выходе результат будет соответствующий.

    Например,
    a01b5a766978496bb925786219efeabc.png
    если не загрузился файл: https://cdnjs.cloudflare.com/ajax/libs/twitter-boo...

    Лучше стили собрать в один файл и размещать на своем сервере, в идеале с кешированием.
  • Почему при изменении цвета возникает ошибка компиляции?

    Возможно, кодировка или невидимые символы.
    Можно попробовать в обычном блокноте открыть и сохранить (или через буфер обмена прогнать (вырезать/вставить); хотя если вы цвет из буфера вставляете, то тогда проблема может быть в источнике кодов цветов).
  • Как правильно удалить часть строки?

    Похоже я кривой HTML в комментарии сделал и последняя часть обрезалась. Не буду повторно писать.

    Вот пример удаления последнего элемента:
    https://jsfiddle.net/alekseynemiro/adm4v91c/1/
  • Как правильно удалить часть строки?

    Сергей Беловенцев: если делать разбивку на массив и в строке будет только один элемент, то в результате останется тоже, что и было на входе.

    Если нужно брать только первый элемент, то просто делать разбивку на массив и выбирать его (индексация начинается с нуля):
    var str = 'odborka_vecher_01.jpg,%,podborka_vecher_37.jpg';
    var result = str.split(',')[0];
    alert(result);
    
    // это также будет работать, если в строке будет один элемент
    str = 'odborka_vecher_01.jpg';
    result = str.split(',')[0];
    alert(result);
    
    // или строка будет пустой
    str = '';
    result = str.split(',')[0];
    alert(result);

    https://jsfiddle.net/alekseynemiro/adm4v91c/

    Если нужно будет обрабатывать ситуацию, когда в строке только один элемент и его требуется удалить, то можно просто проверить размер массива, если размер равен единице (1), то считать, что элементов больше нет и возвращать пустую строку:
    // входящая строка
    var str = 'odborka_vecher_01.jpg';
    // результат по умолчанию - пустая строка
    var result = '';
    // если элементов больше одного
    if (str.split(',').length > 1)
    {
      // берем первый элемент
      result = str.split(',')[0];
    }
    // показываем результат
    alert(result);


    Если нужно реализовать удаление элементов с конца и на 100% известно, что все элементы в строке разделяются подстрокой ",%," (когда их больше одного), то проще использовать функции lastIndeOf и substr:
  • Как лучше переписать JS используя Best Practices?

    yanis_kondakov: при каждом keyup происходит переинициализация autocomplete, это само по себе вызывает опасения :-)

    Я смотрю, вы в autocomplete отдаете только то, что он должен выводить, по сути дублируя механизмы фильтрации данных autocomplete (он должен уметь это делать сам). Вы можете инициализировать autocomplete один раз при загрузке страницы и скормить ему все что есть в localStorage. Тогда обработчик $('#htApp input').keyup будет не нужен.
  • Как лучше переписать JS используя Best Practices?

    yanis_kondakov: пробелы :-)

    for ( var i = 0...
    if ( ~localStorage.key( i ).split("*")...

    и их отсутствие:

    $('#htApp input').autocomplete({...
    $('#htApp button').on('click',function() {...

    Кавычки разные:

    $('#htApp input')
    var currentTag = "";

    Еще один мелкий косяк в стилистике:

    if (e.keyCode != 13) 
        return;

    Без скобок плохо читабельно. Либо со скобками, либо в одну строку.

    Разбивка на массив:

    localStorage.key( i ).split("*")

    Делается больше одного раза. Лучше один раз сделать split в переменную и работать с ней. Будет на пару долей секунд работать быстрее :-)

    $('#htApp input').autocomplete({

    Не уверен, что это уместно в $('#htApp input').keyup.
    Проблем с этим нет? В плане переинициализации autocomplete при нажатии клавиш в текстовом поле.

    Комментариев, да, многовато :-) Такое количество комментариев обычно для обучения используется. В реальных условиях код так подробно не комментируется.

    В остальном, код как код.

    По объявлению переменных, возможно будет полезным: let-const.
  • .NET 2.x Системная информация - как улучшить код?

    foreach - не проблема. Проблема тут в первую очередь в форматировании, а точнее в его полном отсутствии :-)

    Понятно, что Visual Studio сама все отформатирует, но в вопросе с просьбой сделать код лучше, отсутствие форматирования - это как минимум странно.

    pcAntivirus.StartsWith("& ")

    Каким образом может быть иначе, если строчкой выше в переменную pcAntivirus добавляется подстрока "& "? И зачем далее удалять добавленный амперсанд? Зачем его вообще добавлять? ;-)

    pcGPU += pty.Value.ToString();

    Аналогично, нет смысла, можно сразу передавать в twf.WriteLine().

    Ко всему прочему, учитывая, что значение добавляется к переменной (+=), то это логическая ошибка. Если видеоадаптеров будет больше одного, то при следующей итерации в файл будут записываться информация обо всех предыдущих адаптерах.
  • Как правильно реализовать программную отправку почты (mail.ru, gmail.com и т.д.)?

    Самый простой вариант - игнорировать ошибки. Добавить перед отправкой следующую строчку:
    System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };


    Но для безопасности, лучше повозиться с сертификатами. Примеры можно найти в Google.

    И UseDefaultCredentials = false может потребоваться.
  • Как Подключить .net mvc к MySQL сервер через connectionstrings?

    David Sedrakyan: возможно что-то с context.
    Если создать новый context прямо в методе, проблема останется?
  • Как Подключить .net mvc к MySQL сервер через connectionstrings?

    Internal Server Error - о многом говорит, тут прям в каждой букве решение проблемы скрыто :-)

    Есть более информативный текст ошибки? Покажите более информативный текст ошибки.

    <customErrors mode="Off" />

    в крайнем случае try { ... } catch { ... }
  • 500 internal server error bot framework?

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

    Bot Framework Channel Emulator.

    И с ngrok можно поиграть. Для тестов должно хватить.
  • 500 internal server error bot framework?

    BotId - имя бота, например: ExampleBot.
    7ea04b94582a4e19bb0b5518ffdad054.png
    https://www.mybot.somee.com/api/messages

    Что это? Реальная конечная точка? Почему по HTTPS нет доступа? Сервер не настроен?
    Нужно настроить IIS на поддержку HTTPS, это отдельный вопрос и все может быть относительно сложно.

    Если нет доступа к серверу, то обращаться с этим вопросом к хостеру.