Задать вопрос
  • Как проверить несколько datagridview на наличие одинаковых строк?

    Надо не DataGridView проверять, а в классе бизнес-логики всё это делать. В UI выводить коллекции, которые умеют уведомлять о своём изменении UI, чтобы он обновлялся, как и элементы коллекции должны уметь уведомлять UI об изменений значений своих свойств. Судя по всему, речь про Windows Forms.
  • Windows Desktop это те же WinForms, только под .Net?

    romaro,
    Это ограничивает кастомизацию, но ускоряет разработку.

    Очень сомневаюсь, что там хоть как-то что-то ограничивается в плане внешнего вида контролов.
  • Windows Desktop это те же WinForms, только под .Net?

    romaro, даже не знаю. Много от чего зависит ответ. Нужно просто быстро написать и забыть или ещё научиться чему-то, чтобы пригодился опыт? Если научиться, то точно WPF. В крайнем случае никто не мешает писать как на Windows Forms, обращаясь в Code Behind окон и UserControl к элементам в окне напрямую, без биндингов и без использования паттерна MVVM. Да и не настолько там всё сложно. Этот опыт пригодится для использования AvaloniaUI, которому уже примерно 8 лет и 6 месяцев, если посмотреть первый коммит.
  • Windows Desktop это те же WinForms, только под .Net?

    сергей кузьмин, вот только вакансий на все эти фрймворки я не видел. Впечатление, что толку учить всё это не много, хоть и лишним не будет.
  • Windows Desktop это те же WinForms, только под .Net?

    сергей кузьмин, romaro,
    WinUI - шаг Msft в направлении унифицированной платформы разработки Windows. Эта инициатива является попыткой объединить UWP, WPF и другие фрэймворки для разработки пользовательского интерфейса.

    WinUI - это набор элементов управления и библиотек с открытым исходным кодом, предназначенных для использования в приложениях для Universal Windows Platform - UWP.

    Основное преимущество WinUI по сравнению с UWP заключается в меньшей зависимости приложений Windows от конкретной версии Windows. В UWP для получения новых возможностей новой версии SDK нужно было поднимать минимальную версию Windows, что сужало кол-во пользователей, так как не все обновили ОС. WinUI развивается отдельно от Windows SDK.

    Теперь нужно понять, чем является MAUI во всём этом хороводе из фреймворков попробую почитать доку от Msft.
  • Подсчет гласных букв. Почему ошибки?

    SulimK1ald, обновил код. Сделал его совсем чуть-чуть лучше, на мой взгляд.
  • Как заполнить DataGridViewComboBoxColumn информацией из файла?

    Может быть отсюда инфа поможет.
    https://docs.microsoft.com/en-us/dotnet/api/system...

    В гугл я вбивал: Windows Forms how to fill DataGridViewComboBoxColumn
  • Подсчет гласных букв. Почему ошибки?

    SulimK1ald, немного могу прокомментировать:
    Ну смотри, вместо record struct можно было бы вполне использовать обычную структуру

    internal struct Letter
    {
        public Letter(LetterType type, char letter)
        {
            Type = type;
            Value = letter;
        }
    
        public LetterType Type { get; init; }
    
        public char Value { get; init; }
    }


    ----

    class Alphabet принимает на вход список символов, чтобы можно было задать не только русский алфавит, а, например, ещё английский. Я не вникал в суть всех языков, возможно, понадобится что-то ещё, кроме двух свойств, заданных в структуре, но я и не пишу фрэймворк. И хорошо бы как-то проверять, что на вход пришли уникальные символы, без повторений (в моём коде этого нет).

    ----

    Фигурные скобки использую в HashSet{char} в этом и других комментариях, так как нужные символы здесь в комментариях не отображаются, а их замена на специальные значения, которые отображаются правильно это долго и муторно.

    Метод GetVowelSet возвращает HashSet{char}, так как эта структура данных может содержать только уникальные значения, в ней не может быть повторов и по этой структуре данных быстрый поиск, который выполняется в коде много раз в цикле. Методы-расширения Where, Select - это LINQ, про это можно почитать в книге по C#. Их использование положительно влияет на скорость написания кода и его читаемость.

    Вот часть объявления класса HashSet{T}

    public class HashSet{T} : ICollection{T}, IEnumerable{T}, IEnumerable, IReadOnlyCollection{T}, ISet{T}, IReadOnlySet{T}, IDeserializationCallback, ISerializable
    Вроде должно быть понятнее теперь почему я использую IReadOnlySet{T}. Чтобы потребитель видел, что я не хочу, чтобы результат модифицировали, в идею использования этого результата это не заложено.

    Читай комментарии в коде ниже
    internal class Alphabet
    {
        // ...
    
        public IReadOnlySet<char> GetVowelSet()
        {
            return Letters
                 // Where фильтрует исходную колекцию со всеми данными по переданному условию, 
                 // конкретно здесь по типу символа
                .Where(letter => letter.Type == LetterType.Vowel)
                 // Select получает из отфильтрованных значений новый тип данных, 
                 // конкретно здесь только свойство типа char
                .Select(letter => letter.Value)
                // Весь отфильтрованный результат кладём в HashSet<char>
                .ToHashSet();
        }
    
        // ...
    }


    ---

    перечисление LetterType в структуре Letter нужно, чтобы можно было как-то получить из всего алфавита только гласные или согласные.

    ---

    Для читаемости часть кода
    var vowels = alphabet.GetVowelSet();
    var consonants = alphabet.GetConsonantSet();


    Лучше было записать так:
    IReadOnlySet<char> vowels = alphabet.GetVowelSet();
    IReadOnlySet<char> consonants = alphabet.GetConsonantSet();

    var не нужно пихать везде и всюду. Многие не понимают зачем это было введено и как лучше его использовать. Читая код ты должен сразу понимать, что в нём происходит, а не гадать, что скрывается за var. В качестве исключения, var можно использовать при работе LINQ, так как там могут быть монструозные возвращаемые типы. Такая же беда есть в Kotlin, заметил в одном проекте, что часто не пишут тип переменной, что негативно влияет на читаемость кода.
  • Какие сферы сейчас востребованы на C#?

    oleg_ods, опыт в WPF позволил мне влиться в проект на UWP просто за неделю. Там очень много чего не так как в WPF, но с наличием опыта я как рыба в воде, как в своей среде обитания был.

    По WPF есть хорошие книги, например, первая ознакомляет с самими идеями заложенными в WPF, что было сделано и почему так. Вот эта книга: Основы Windows Presentation Foundation | Андерсон Крис
    ISBN: 978-5-9775-0265-8, 978-5-94074-363-7

    Есть и другие книги, которые очень хорошо объясняют, что как устроено в WPF, их легко нагуглить. Например: WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов | Мэтью Мак-Дональд
    Да, она древняя, но про WPF там есть всё, что нужно. Сам WPF не менялся кардинально.
    ISBN: 978-5-8459-1854-3

    Можно попробовать всё это пропустить, но я не пробовал учить, например, MAUI с нуля или даже UWP. Не знаю насколько это сложно без хороших книг. И да я осознаю насколько это может много занять времени, если начинать с WPF, чтобы перейти в MAUI. Может быть, по MAUI есть хорошая инфа/книги.
  • Какие сферы сейчас востребованы на C#?

    Eugene, как я вижу, всё актуально. На скриншоте окно для создания нового WPF проекта.

    6299e7c837d83510472329.png
  • Какие сферы сейчас востребованы на C#?

    Eugene, откуда такая информация? С новым это какой версией или в целом с .NET (теперь так называется, не .NET Core)? WPF допилили, чтобы он с .NET работал. По крайней мере, проект точно можно создать для .NET 6.0
  • Какие сферы сейчас востребованы на C#?

    Я бы на твоё месте развивался в ASP.NET Core (.NET 6, самый свежий C#, там ещё сейчас всякие Blazor'ы подъехали). И потом бы ещё WPF или AvaloniaUI изучил, чтобы можно было и бекенд набросать и во фронтенде попрактиковаться, опыт в любом случае в будущем пригодится. Всегда легче влиться в проект, если ты хотя бы с технологией знаком, а не впервые её видишь.
  • Какие сферы сейчас востребованы на C#?

    Но это не значит, что ничего другого нет. Есть и WPF, даже UWP проект может попасться. Может и Unity быть легко. Может быть самописный бэкенд древний как сам мир.
  • Какие сферы сейчас востребованы на C#?

    Посмотри вакансии на:
    • на этом сайте
    • хэдхантере
    • в телеграм каналах, где размещают вакансии

    Лично я думаю, что больше всего бэкенда ASP.NET Core какой-нибудь. Но я не следовал своему совету - не ходил смотреть сейчас. Я по памяти, что-то когда-то видел.
  • Подсчет гласных букв. Почему ошибки?

    SulimK1ald, для начала бы понять задачу. Нужно в строке посчитать гласные. Строка вводится руками через консоль (я так не люблю). Лучше писать на готовых тестовых данных, чем эти выкрутасы с консолью. Кажись, задачу осилил (понял).