Ответы пользователя по тегу C#
  • Как превратить несколько методов, которые выполняют одну и ту же работу, в один?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Делать метод обобщенным - не вариант
    самый тот вариант
    у обобщенного типа может вызываться только стандартный конструктор
    у методов не бывает конструкторов. они бываю у классов. понятно что ваша проблема в недопонимании, но не понятно чего именно. если бы вы привели пример заголовка (upd а лучше весь метод) обобщенного метода, и указали, в каком месте он не справляется с потребностями - это можно было обсудить. возможно даже сразу показать решение
    Ответ написан
    3 комментария
  • С помощью каких инструментов проще всего создать кросс-платформенное web-приложение на С#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - для кроссплатформенности - .Net Core
    2 - а мозгов - надо понять что сайт и нативное приложение в принципе не одно и тоже, и ни когда не будут одним и тем же явлением. ближе всего будут сайт и фреймворк типа Electron. но ни шарпу, ни дотнету вообще, там места нет
    https://ru.wikipedia.org/wiki/Electron

    ps если не пугает фронтенд на js/html, тогда вам сюда к примеру https://github.com/ElectronNET/Electron.NET
    Ответ написан
    Комментировать
  • Как можно передавать параметры в форму, и возвращать их из главной формы?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    у каждой формы создайте публичный метод или свойство, для приема данных и будет вам счастье

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    надо полагать юзер test с паролем 111 уже создан?
    6o1sxW6.png
    возможно дело в правах на текущую папку. по умолчанию проект размещен в папке текущего пользователя, а доступ к ней открыт только владельцу, системе и администраторам (и то с запросом на повышение прав)

    попробуйте добавить переход на доступную территорию
    Directory.SetCurrentDirectory(@"c:\users\public");
    а так в целом все работает. если и есть ошибки, то не в данном фрагменте
    GMFUZyn.png
    Ответ написан
    1 комментарий
  • Удаление повторяющихся элементов из массива?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    R82n3Ex.png

    ps List по сути динамический массив, во многих случаях он удобнее. Distinct() возвращает IEnumerable. если нужен строго массив на выходе, тоже все просто - var uniques = ls.Distinct().ToArray(); List, IEnumerable и Array взаимно конвертируемы в любой комбинации. и для всех существует расширение Distinct()
    Ответ написан
    2 комментария
  • Какая ошибка в коде (C#)?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    А где сама переменная s?
    да!..
    .. учитывая предыдущий вопрос - а в чем собственно трудности? (см скрин)
    TUeYmph.png

    ps есть ощущение, что вы используете подход, как в п.4 (по ссылке)
    Ответ написан
    Комментировать
  • Как определить на каком цикле происходит задержка?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ??
    Логирование
    профилирование! https://msdn.microsoft.com/ru-ru/library/ms182398.aspx
    Ответ написан
    Комментировать
  • Какие сложности могут возникнуть при изучении Java после C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    типичные трудности изучения "следующего языка":
    - лень
    - прокрастинаяция
    - увиливание

    преимущества изучения "следующего языка":
    - ломка стереотипов и призм "первого языка"
    - расширение программистского понимания вне рамок языков

    в случае ява после шарпа (как и наоборот) и трудности, и бонусы минимальные. сами языки, ближе к друг другу, чем даже к C/C++, хотя оба их потомки. там больше проблем будет с окружениями и библиотеками - тут уже различия глобальные. вокруг каждого языка, собственная экосистема (.Net/Mono против JVM). при этом, эти экосистемы не пересекаются, и состоят в откровенной конкуренции. это имеет значение, когда уже подростаем до уровня готовности к реальному трудоустройству. но есть нюансик - на этом уровне, программист уже в состоянии без соплей, довольно быстро осваиваться в конкурентной экосистеме (понимая общие основные принципы)
    Ответ написан
    Комментировать
  • Незащищенное соединение на локальном сервере?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    сертификат из коробки поставляется
    из какой коробки? если у вас исходник проекта под VS с джитхаба, с сертиком в комплекте - сертик скорее всего сгенерирован на машине автора примера. и у вас по определению нет закрытого ключа

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

    при чем это либо сразу в менюхах студии видно, или в IIS манагере, или достаточно легко гуглится
    Ответ написан
  • Скрыть область видимости переменной?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в заданном наборе требований решения нет
    Ответ написан
    2 комментария
  • Как урезать строку с конца в C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Remove(Int32) upd в вашем случае просто указать стартовую позицию для удаления (8)

    так как string неизменяемый класс, Remove тоже функция возвращающая значение, в котором что то удалено

    ps
    стековефлоу
    - неа, в данном случае сразу MSDN ;)))

    pps точнее visual studio intellisense, полезно просматривать выбор после точки, чуть что F1, и вот уже MSDN ))
    Ответ написан
    2 комментария
  • Как изменить значение переменной в ресурсах?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    использовать БД или конфигурационные файлы (в обоих случаях полезно задумываться о безопасности - использовать шифрование, хотя бы для защиты от прямого чтения)

    а ресурсы изначально задумывались как способ хранения статических вещей, типа параметров по умолчанию, разметки по умолчанию, и тд
    Ответ написан
    Комментировать
  • Правда ли, что программы написанные на C++ работают быстрее чем аналогичные на C#. к примеру?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    кроме всего перечисленного, код C# (точнее рантайм дотнета), обращается к системе чрез библиотеки посредники

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

    так же зависит от стиля программирования. тот же C++ постепенно обрастает возможностями функционального программирования (хотя C# быстрее). данная парадигма может сократить время разработки и повысить надежность кода, но обычно ценой как раз производительности
    Ответ написан
    Комментировать
  • Какую БД выбрать для разработки программы?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а база данных будет находится на удаленном компьютере
    самые важные вопросы:
    - ожидаемый объем данных?
    - какая ОС на "удаленном компьютере"?

    допустим это Windows (в тч Server), и объемы ожидаются небольшие, ответ однозначный - MS SQL Server Express, лимит базы 10 Гб, зато все бесплатно и "с ног до головы родное", как винде, так шарпу, впфу и самой студии. все описано и разжевано до нельзя. даже по русски
    Ответ написан
    2 комментария
  • Объясните начинающему?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Оператор % (Справочник по C#)

    допустим у вас число 3333. при целочисленном* делении на 100 будет результат 33. строго говоря сотен 33 и есть. но если речь о выделении именно одного разряда сотен 3333, то есть надо получить 3?

    очевидно этим и занимается % - он дает остаток от деления на 10. по законам шарпа 33 % 10 = 3

    ps еще пример
    1234 / 100 = 12
    12 % 10 = 2

    * - при целочисленном делении, в языках строгой типизации, дробная часть отбрасывается
    Ответ написан
    Комментировать
  • C# Как удалить область строки?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    помогает String.Remove там же есть пример применения

    пользуйтесь Visual Studio или Visual Studio Code. набираете имя переменной, ставите точку - выпадает список, просматривайте его, большинство методов можно понять по названию

    пользуйтесь кнопкой F1 на названиях классов и методов, очень полезно пролистывать сведения о классе

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ни каких особых бестпрактикс:
    - не зависимо от дочерности, для влияния на форму нужна "ссылка" (не в смысле ссылочности, а переменная нужного типа myForm) и паблик метод, выполняющий нужные действия с приватными свойствами
    - о "ссылках" - главная форма, как правило знает всех "дочек", по тому что обычно сама их и создает. а вот в "дочках" надо предусмотреть паблик свойство/поле типа MainForm. и после создании дочки из главной формы, присвоить этому полю/свойству значение this. только после этого запускать ее. .. можно и через конструктор, но по мне это гиморнее

    upd хотя на самом деле есть одна фишка 5ODp4P3.pngPropertyBinding к AplicationSettings но там знанием как изменить шрифт уже не отделаешься ))

    это штатный механизм для создания сохраняемых конфигов. прямо скажем уже прилично устаревший (как и сами формы). но по МСДН полазить придется ))
    Ответ написан
    Комментировать
  • В Visual Studio 2017 иногда когда заходишь в ранее сохраненный файл программа не открывает окошко при нажатии F5, как исправить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в Visual Studio 2017 (да и вообще любой) запуск программы
    окошко при нажатии F5
    доступно при открытии решения (*.sln - это способ ведения проектов в VS, корректнее всегда открывать именно решения) или проекта (*.csproj и др, в соответствии с языком проекта, но и в этом случае создается временное решение, и при закрытии проекта предлагается его сохранить)

    может вы открываете отдельно взятый файл исходника? (*.cs, *.c, *.cpp и тд) в этом случае компиляция и выполнение не доступны

    ps где то совсем недавно, попадалось на глаза, что якобы студия, начиная именно с 2017, умеет исполнять отдельные файлы C#. из любопытства только что перепроверил - нет, не исполняет. (возможно там речь шла о VS Code, но это самостоятельный продукт, с кучей своих особенностей)
    Ответ написан
    Комментировать
  • Как передаются Dictinary в C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а написать тест в 5 строк не судьба?

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

    в качестве параметров методов, обычно передаются копии объектов, думаю Dictionary подчиняется общим правилам* (напомню - это элементарно проверить - консольное приложение на несколько строк)

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

    ps * - две проверки подтвердили передачу по ссылке, ну что же, значит по ссылке, сори за поспешность ))

    Повлияет ли на результат асинхронность методов классов? await-async
    думаю тут надо искать сведения о потокобезопасности. на пример
    https://docs.microsoft.com/ru-ru/dotnet/standard/c...
    Dictionary там вроде не упоминается, но упоминается ConcurrentDictionary возможно вам надо присмотреться к пространству имен System.Collections.Concurrent
    Ответ написан
    5 комментариев
  • Как включить отображение XAML Designer Window в Visual Studio 2017?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    создать WPF или UWP приложение, и он сам прекрасно открывается. в иных случаях он не нужен.
    все дизайнеры в студии (в тч WinForms), обрабатывают фалы макета в связке с кодом (хотя у форм это и есть код, только генереный по правилам дизайнера), по этому, вне проекта дизайнеры не доступны

    если у вас WPF или UWP - уточните проблему
    Ответ написан