C# which version to learn?

toto_sharp

New member
Joined
Jan 25, 2022
Messages
1
Programming Experience
Beginner
Hi all,

I've recently started learning c#, my question is which version of c# should I start learning?
 
Depends. What are your objectives for learning C#?
 
It probably doesn't matter too much. When you learn the basics, most things are going to be the same for all versions. A lot of the beginner information on the web has been there for a while so it will have been written for an older version anyway. Even if there are newer ways to do certain things, the older ways will still work in almost all cases. If you encounter a specific issue along the way then you can ask a specific question here about that. I would suggest that you install VS 2022 Community and just start learning. That's the latest version of VS so it will support the latest version of C#, so just about anything you find online will apply.
 
Hi all,

I've recently started learning c#, my question is which version of c# should I start learning?

Hi! That's great that you've started learning C#. As for which version to start with, it's generally recommended to start with the latest stable version, which as of my knowledge cutoff in September 2021, is C# 9.0. Starting with the latest version ensures that you're learning the most up-to-date features and practices of the language. However, it's also important to note that the core concepts and fundamentals of C# remain relatively consistent across different versions. So even if you start with an older version like C# 7.0 or 8.0, you can still build a strong foundation and then fight learn about the newer features.
 
Are you asserting that the last time Microsoft produced a stable version of C# was nearly 2 years ago? Every version since then has.. what.. crashed a lot for not reason? Given bizarre compiler warnings or errors on legal code and refused to compile? What do you mean by "stable"?
 
the core concepts and fundamentals of C# remain relatively consistent across different versions. A lot of the beginner information on the web has been there for a while so it will have been written for an older version anyway. Even if there are newer ways to do certain things, the older ways will still work in almost all cases. If you encounter a specific issue along the way then you can ask a specific question here about that. I would suggest that you install VS 2022 Community and just start learning. That's the latest version of VS so it will support the latest version of C#, so just about anything you find online will apply.

Hello @jmcilhinney: as you are saying " the core concepts and fundamentals of C# remain relatively consistent across different versions " so I am a beginner Just I want to make sure that If I learn c# with version 3.0 and 4.0 then is there any issue? means whatever fundamentals and concepts support c# version 3.0 and 4.0, these all fundamental concepts and syntaxes will be the same in the coming new versions of c# like version 5.0,6.0, and above versions?
 
Yes. C# has not yet brokem backward compatibility, so your code will still compile and run. Your code may look dated but that is just a matter of style since all the code compiled into the same IL anyway.

The .NET Framework has broken backward compatibility, but you are asking about the language, not the framework.
 
Yes. C# has not yet brokem backward compatibility, so your code will still compile and run. Your code may look dated but that is just a matter of style since all the code compiled into the same IL anyway.

The .NET Framework has broken backward compatibility, but you are asking about the language, not the framework.

Ok but If I know c# 3.0 and 4.0 and work is on .NET framework 4.0 to 4.8 then Can I work with the organization?
fundamentally? means Can I use these all old fundamental concepts to work on .NET 4.0 to 4.8? or Should I learn new fundamental concepts? because so many are saying that the fundamental concepts will be the same for all versions. Is it right?
 
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?
 
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?

Thank you for your comment but I want to make sure that suppose I know c# 3.0 and 4.0 and suppose I am working with an organization and if I want to work on .NET 4.0,4.5,4.6,4.7,4.8 then If I use the old fundamental concepts of c# 3.0 and 4.0 and their syntax and all the coding of them then any issue? will the organization allow me to write the old fundamental concepts syntaxes and code? or not?
 
That will depend on the team that you end up working with. Some teams may require that you write in a modern style and use modern features. Some teams may require sticking with a particular style/version "for the sake of the new hire who may not be up to speed with the latest versions". Some teams may not care, as long as your code is readable and works correctly.

Just learn C# language version 7.3 and you'll be good for a few years.
 
Last edited:
Thank you for your comment but I want to make sure that suppose I know c# 3.0 and 4.0 and suppose I am working with an organization and if I want to work on .NET 4.0,4.5,4.6,4.7,4.8 then If I use the old fundamental concepts of c# 3.0 and 4.0 and their syntax and all the coding of them then any issue? will the organization allow me to write the old fundamental concepts syntaxes and code? or not?

How many times, in how many threads, are you going to ask the same question? You just ignore what you're told and ask the same thing again. If you want to know what an organisation will do, ask them. We can't read the minds of people we've never met.
 
Forum etiquette: if someone writes a massive post, and you're the next person in line to reply to it, don't quote the entire long thing just to write a short message onto it

(Their post is literally above yours, you don't need to repeat the whole thing again a few pixels below it)
 
How many times, in how many threads, are you going to ask the same question? You just ignore what you're told and ask the same thing again. If you want to know what an organisation will do, ask them. We can't read the mind

How many times, in how many threads, are you going to ask the same question? You just ignore what you're told and ask the same thing again. If you want to know what an organisation will do, ask them. We can't read the minds of people we've never met.

@jmcilhinney Hello, sorry for that, just one time help me suppose I know c# 3.0 and 4.0 and suppose I am working with an organization and if I want to work on .NET 4.0,4.5,4.6,4.7,4.8 then If I use the old fundamental concepts of c# 3.0 and 4.0 and their syntax and all the coding of them then any issue? will the organization allow me to write the old fundamental concepts syntaxes and code? or not? please help me I am from a poor family. and can`t understand properly that`s why asking you but I am really sorry for that 😢😢
 
will the organization allow me to write the old fundamental concepts syntaxes and code?

It depends on the organization, and the particular piece of software you're developing but for a modern, up-to-date organization developing new software I'm tempted to say "no, they won't permit use of ancient syntax and obsolete classes, styles and approaches"

If one of my devs turned in some code for review that was full of Hashtable instead of generic collections, Array.TrueForAll instead of LINQ, ADO.net datareader and datatable rather than EF or Dapper, severely nested ternaries instead of switch expressions, lack of async where possible and slavish use of full properties/variable declarations in place of autos and var.. then I'd kick it out because it's not to house style
 
Back
Top Bottom