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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    два пути:
    - изучать спецификаторы вывода от МС https://docs.microsoft.com/ru-ru/dotnet/standard/b... (в конце топика дополнительные ссылки, изучите их тоже)
    - выполнить нужное округление заранее
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    https://habr.com/ru/sandbox/76182/
    Ответ написан
    Комментировать
  • Как удалить объект из массива в Unity 2D?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    укажите о каком типе (классе) идет речь?

    ps Илья Гарбажий,
    GameObjects[]
    по правилам языка C#, это массив. динамическое изменение размерности не предусмотрено
    pps совет - используйте список. и стоит изучить различия
    Ответ написан
    5 комментариев
  • Как отключить возможность выбора, если выбрано более двух элементов CollectionView Xamarin?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    https://docs.microsoft.com/ru-ru/xamarin/xamarin-f...
    https://docs.microsoft.com/ru-ru/dotnet/api/xamari...

    что то мне подсказывает, что collectionView1_one.SelectedItems.Count;
    мало того, банальный IntelliSense визуалстудии, при вводе точки, и просмотре вариантов, должен это показывать
    грех задавать такие вопросы

    ps а еще F1 можно нажать на типе данных. в вашем случае CollectionView. и получить ссылки что в начале ответа
    Ответ написан
    Комментировать
  • Entity Framework Core как добавить сторонний параметр при загрузке данных из БД?

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

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

    удачи! ))
    Ответ написан
    2 комментария
  • Почему не транспонируется матрица?

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

    ps а если вы попытаетесь транспонировать этим кодом не квадратную матрицу, вообще крэш поймаете. помедитируйте на этим ;))
    Ответ написан
  • Что изучить для реализации такой программы?

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

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

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

    совет - либо сайт-блог, либо приложение + Web API на Asp.Net (+ SignalR если нужен реалтайм), либо закажите у профи
    Ответ написан
    Комментировать
  • [VkNet] Как преобразовать объект в Int64?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    - если этот метод https://vknet.github.io/vk/messages/setChatPhoto/ у вас тут оба параметра обязательные, выписывать их именования не нужно, это только загромождает код
    - если бы вы привели еще фрагмент кода, можно было бы копировать ваши имена. кода нет - копирую имена из спеки
    - к сути - если вы объявляете переменную для MessageId выше, то описания не видно, проблема может быть там. попробуйте не объявляйте переменную заранее, а получить ее прямо во время вызова. вот так
    SetChatPhoto(out var MessageId, File)
    Ответ написан
    2 комментария
  • Как узнать на чем проект .net core или asp .net?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а еще можно открыть свойства проекта, и поискать опцию "целевая платформа"
    Ответ написан
    Комментировать
  • Как передать из функции tuple?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну я бы не стал заморачиваться с именованием членов кортежа. но если очень хочется, вроде в МСДН все было внятно прописано. гуглим что то типа кортежи C#
    пример кода ниже, две функции используют разные способы доступа к элементам кортежей. на мой взгляд самые практичные. ну и задача
    как описать две функции, которые принимают и возвращают подобные tuple?
    там точно решена
    сам код
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace experience_with_tuples
    {
        class Program
        {
            static void Main(string[] args)
            {
                var t = (1, "test", true);
                ConOut_tuple(job_with_tuple(t));
                // хотя можно и так. но не забываем про скобки
                ConOut_tuple(job_with_tuple((1, "test", true)));
            }
    
            static (int, string, bool) job_with_tuple((int, string, bool) t)
            {
                (var i, var s, var b) = t;
                i++;
                s += " successful";
                b = !b;
                return (i, s, b);
            }
    
            static void ConOut_tuple((int, string, bool) t) =>
                Console.WriteLine(
                    t.Item1 + Environment.NewLine +
                    t.Item2 + Environment.NewLine +
                    $"detected errors: {t.Item3}"
                    );
        }
    }

    выхлоп
    mw6Fhhh.png

    upd еще об именовании
    как только вы хотите именовать члены кортежа, что бы все было строго и логично и через десяток листов кода ясно понимать что это тут у нас?
    вам уже нужен не кортеж а класс. хотя иногда лучше структура. но это совсем отдельная и вполне достойная внимания тема.
    кортеж классная штука, но она [реально классная] для решения локальных задач в функциональном стиле. в идеале, когда не зависимо от количества строк, и так все сразу ясно и понятно. типа на входе проекция в кортеж, а на выходе сразу декомпозиция. тогда по коду и так видно что происходит.
    типа такого
    public (int, int) MovePoint(int x, int y)
    {
      // bla-bla-bla
      // изменения x, y
      return (x, y);
    }
    ...
    (var newX, var newY) = MovePoint(oldX, oldY);
    Ответ написан
    Комментировать
  • Как выполнить запрос c# httpclient, если сервер требует js?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в каментах выше подсказана суть - много чего может формироваться js
    в вопросах ботизации нас интересует только клиентская сторона, что генерируется на сервере не очень важно, если на клиенте все отрабатывает так как ожидает сервер
    selenium классика но и не единственный вариант:
    - расширения браузеров (которых вы хотели бы избежать)
    - безголовые браузеры (прям так и гуглите, можете добавлять слова бот, автоматизация, тема оч популярная)
    - cefsharp (а нас же тег C#?) (но я бы не сказал что низкий порог входа)
    - GeckoFx мне оч нравится, но катастрофически редко обновляется
    - chromiumfx менее известен, зато регулярно обновляется
    - если сайт поддерживает IE, WebBrowser/WebView (Forms/WPF) в шарпе "из коробки" (под виндой)
    - в принципе есть еще WebView UWP (метро) там сразу Edge. но порог вхождения тоже повыше немного будет
    Ответ написан
  • Что выбрать, Unity или .NET?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    цель то какая?
    если трудоустройство - .net
    еще одна не очень радостная новость - .net все тоже самое
    спрос хороший, но на спецов. ну может чуток больше шансов куда то нырнуть джуном не имея ни особо глубокого опыта в самом кодинге, ни опыта какой либо предметной области
    Ответ написан
    Комментировать
  • JavaScript и C#?

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    про Visual Studio? если да:

    еще один, не совсем очевидным но очень простой способ:
    - кинуть новый файл cs в папку проекта
    - в панельке обозревателя проекта изучить кнопочки (можно наводить и задерживать мышку, будет всплывать подсказка)
    - выбрать "отображать все файлы"
    - ваш новый файл кода станет видимым, но серым
    - ПКМ на нем, в локальном меню "включить в проект"
    - предпочтительно после этого выключить "отображать все файлы" обычно это только мешает

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

    ps про dll
    - можно подключить сорцы плагина отдельным проектом. иногда это может быть на много правильнее чем валить сорцы в кучу
    см скрины под спойлером
    ltUrhSj.pngvA1o7mw.png в этом месте надо поставить галочку, но просто мне в это паре проектов связь не нужнаbXUBeX1.pngдолжна была получиться стрелка на кнопку "ОК" но чет не влезло.. звиняйте ))
    Ответ написан
    Комментировать
  • Как реализовать браузер в desktop приложении?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    - ранее указанный CefSharp вероятно самый перспективный, учитывая тенденции на рынке браузеров
    - есть GeckoFx. Семплы под формс есть. Мне показалось порог вхождения ниже. Но (см выше) тенденции однако. А главное слишком редко обновляется. Сам фокс может успеть внести радикальные изменения в движок, пока проект выпустит обнову. Мне интересен тем, что накоплен приличный опыт переноса профилей фокса всего 7 или 8ю файлами
    - для потренироваться, новичкам вполне сгодятся WebBrowser/WebView (Forms/WPF). Зато «из коробки». Но это IE, увы. Есть еще WebView в UWP – это Edge, но там придется грызть XAML при чем все даже чуток мудренее чем просто в WPF. Но по большому счету и инфы навалом, и в магазине пачки демо приложений

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    начиная с появления .net core - он стал кроссплатформенным
    с выходом .dot net 5 разделение опять исчезнент. дотнет будет кроссплатформеным тотатльно
    если интересно почитатать https://habr.com/ru/company/raiffeisenbank/blog/451136/
    хотя уже есть более свежие обзоры

    ps про VS для OS X уже упомянуто. под динукс (да и вобще подо все) есть бесплатный VS CODE. есть еще тоже тотально кроссплатформенный Rider от JetBriins. но у него не существует бесплатных редакций. разве что только беты
    Ответ написан
    2 комментария
  • Если шансы устроиться C# ASP.NET разработчиком без ВО?

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - есть книги. в том числе всьма авторитетные. мало того - есть онлайн и книги, и курсы, и задачники
    book.lib.rus.ec
    https://metanit.com/sharp/tutorial/
    https://www.codewars.com/
    2 - онлайн IDE и близкие к ним инструменты
    https://sharplab.io/
    https://dotnetfiddle.net/
    https://ideone.com/
    https://rextester.com/

    ps
    - это далеко не все. дружите с поисковиками
    - а вот на экран телефона вероято влезет не все
    - если кто то под баном, опять же поисковики подскажут
    Ответ написан
    Комментировать
  • Как изменить элемент из другого класса?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - так и покажите где и как обявлен label2
    2 - и где, по отношению к ней, находится код, который пытается нзменить label2
    3 - приведите убедительные доказательства, что этот код кообще реально вызывается (да, и такие ошибки бывают. но тут достаточно break point в студии поставить)

    .. вам надо показать всю картину. по тому что по общему описанию, вы ловите проблему, которой действительно не должно быть в WinForms

    вольная фантазия - возможно вы повесили модификатор public на метод, который пытается изменить label2, но возможно умудрились label2 сделать недоступным. по дефолту визуального конструктора, он скоре всего так public, но может это вторичная фрма? которую вы всю всю сделали private?... (хотя тут и компилятор бы ругнулся..) тем не менее - без полной картины качественный ответ невозможн

    звиняйте экстрасенсы в отпуске (с) ))

    ps старый и слепой (((
    int score=0;
    label2.Text = "хоть что то";
    while (score <= 0) 
    {
                        score = textBox1.TextLength;
                        richTextBox1.Text += score;
                        if(score>0)
                        label2.Text = score.ToString();
    }


    это на 100% бесконечный цикл. он имеет шанс на выход, только в случае, если score имеет отрицательное значение. но...
    - мы имеем инициализацию int score=0;, мало того, изначальное инициализиреуем label2 не пустым значением, а это будет только подливать керосина в костер, но уже в теле цикла
    - далее бесконечно score = textBox1.TextLength; вот только это значение ни когда не может быть отрицательным (а судя по остальному коду цикла, даже вряд ли нулевым хоть когда либо)
    - и напомниню исловие цикла while (score <= 0) (то есть равенство нулю допустимо волею автора изначально) прервать эту вакханалию может только отрицтельное значение.. ну или break; по какому то осмысленному условию, которое реально может наступить в достаточно короткие сроки.. а не через годы, а то ведь бешатой собаке семь верст не круг (с)

    похоже что все у вас происходит, только название этому - зависание (по заумному - бесконечный цикл)
    Ответ написан
    5 комментариев
  • На с# пишут только энтерпрайз?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    категорически не только
    что бы не писать очередную лекцию (чем грешу иногда частенько.. вот и ныне.. ))
    вы пошуршите на github по тегу c# уверяю, че только не найдете ;))
    к примеру есть более одного интерпретатора prolog на C# ;)) (сылки по запросу, по тому что не все на гите проживают. я было дело сильно интересовался темой ))
    ну и еще "пару" слов
    C# лучший универсальный язык современности
    (с) Дмитрий Нестерук, сказано не особо давно. на тот момент точно уже съел собаку и в шарпе, и в плюсах (C++), и в F# (у меня есть основания так считать). много лет проработал в JetBrains, как раз главным по .net. что не поделили не знаю, да и не благодарное это занятие чужое исподнее разглядывать
    но прогер опытный и сильный. если любопытно - погуглите, кроме личного блога и на ютубе засветился не раз, да и возможно еще где ))

    ps мое личное мнение скорее совпадет с тональностью и названием статьи.. или двух ;))
    https://habr.com/ru/company/jugru/blog/327492/
    https://habr.com/ru/company/epam_systems/blog/429766/
    год ли? пять ли? дот нет развивается гораздо агрессивнее чем java. не смотря на то что багаж наработок у java, думаю, все еще побогаче будет
    следующий захватческий ход описан в этой статье (хотя наверняка уже есть не мало более свежих)
    https://habr.com/ru/company/raiffeisenbank/blog/451136/
    дотнет предоставляет возможности и для тех кому нужен максимальный перфоманс (чего в jvm, на сколько мне известно, нет вообще. но могу и ошибаться)
    https://habr.com/ru/post/443804/
    https://habr.com/ru/company/clrium/blog/467663/
    мое личное мнение - dotnet очень перспективня платформа. основной язык C#, возможно следующим стоит учить именно F# (ну или если бзики как уменя то CIL и натуральный ASM)
    .. ах да, web куда же без него, wasm во всех ипостасиях, пока генерит тяжеловатые сборки, речь о размере, а значит о времени загрузки. но всегда подтверджает гораздо более высокую производительность
    MS мимо не прошел - продукт называется Blazor сыроват.. но будем посмотреть ;))

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

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