I've mentioned in another thread, if your intent is to get hired and maintain legacy code, that should be more that sufficient to get you through the day. If your intent is to write new code, you will need to eventually learn the newer language features because in the process of writing new code, you'll likely be learning various other modern framework pieces and most of the documentation, tutorials, etc. will likely use a more modern way of expressing something because it will allow the author to show the particular framework feature without getting into a lot of boilerplate code. Most of the newer language features cut down on the amount of boilerplate code that you would have to write if you were using the older version of the language. For example, before the async/await
options came along, the same thing could be achieved by writing your own co-procedures using C# foreach
loops. I think there was a big blog post written by Stephen Cleary regarding this at around the same time the TPL (Task Parallel Library) was being introduced.
Let's step back a bit. Why are you obsessed about needing to focus on .NET Framework version 4.0 to 4.8? Why not just learn to use .NET Framework 4.8.x and/or .NET (Core) 6.0? Is it because you have a machine on which you don't have admin access to be able to install newer versions of Visual Studio Community Edition? Is it because someone handed you down a bunch of programming books and you want to use those and not have to learn from other sources? Is it because there is a job listing that you are looking at and they specifically listed those versions? (As an aside, most HR folks don't know what they are writing when they put a job listing.) What's the constraints that you are trying to deal with?