How do I improve my knowledge in C#

In addition to Stack Overflow, study the code of software you like that you can found for example on GitHub, GitLab, SourceForge and CodeProject. Try to make similar software and adapt them, like a notepad, a calculator, a file explorer, a bank manager... or a game. Write code, don't stop to write. And above all, read and re-read books. Personally, I like Wrox (Wiley) books, they are very good: do not hesitate to read even old books if newer version not available. Online course are great too, but they don't replace books and source code or professional training.

A special mention for these:

Some other examples:

Fundamentals:

About generics:

More advanced:

Others:

UML tutorials:

Articles:

Books of Robert C. Martin:

.NET Framework source to see how things are done:

Intel's Developers Manuals to see how CPU and machine language work:

Bibliography: