This course is awesome, clean and concise. The best part is that they actually tell you WHY some stuff are useful instead of just saying that something it is useful, but with no solid reasons.
This course is brilliant for beginners. I checked few course at plural sight and did not get anything. At the end, I looked at RUclips and found this amazing course free of charge.
Great Tutorial. I went through the video from the first minute (Welcome to this 7-hour C# course!) to the last minute (Thank you for watching!). The first long tutorial I will complete without skipping. Thank you for this video. I hope we get the 1,500 likes.
This tutorial is very good. I used to write code quite a lot around 20 years ago with Pascal and C++, but just checking through this video, it all comes back to me. I am also more curious about C# now. it seems even better for me, than C++
4:10:05 That is the old and inferior - very old and very inferior - way of doing it. They introduced optional parameters I think more than a decade ago. Even with what you have so far on screen, the better way to do it is: public Human(string firstName, string lastName, string eyeColor, int age = 0) Now age is an optional parameter. If the caller passes an argument for age (say, 32), the value they passed is used: if they call the constructor without giving an argument for age, then the default value of 0 (specified in the method signature using ... = 0) is used. The 1 parameterized constructor with an optional parameter does the job of the 2 parameterized constuctors you have. And now you are making it worse. You are asking the developer to create even more paramterized constructors, in case another parameter is not given a value on instantiation. So your developer will have 5 or 6 parameterized constructors instead of just 1. Worse still, if you want to take all possibilities into consideration, you would have to create a slew of pamaterized constructors, such as: 1) Caller passes only firstName 2) Caller passes only lastName 3) Caller passes only eyeColor 4) Caller passes only age 5 ) Caller passes only firstName and lastName 6 ) Caller passes only firstName and eyeColor 7 ) Caller passes only firstName and age 8 ) Caller passes only lastName and eyeColor 9 ) Caller passes only lastName and age 10) Caller passes only eyeColor and age 11) Caller passes firstName, lastName, and eyeColor 12) Caller passes firstName, lastName, and age 13) Caller passes lastName, eyeColor, and age 14) Caller passes firstName, lastName, eyeColor, and age But if you use optional parameters for all 4 (firstName, lastName, eyeColor, and age), then a single constructor would handle all of the above cases. And worse again, if you add one more field, such as gender, you are going to have to add more parameterized constructors. Finally, you have a lot of duplicated code in your many parameterized constructors. For example, multiple parameterized constructors will have code to set the value for firstName and lastName. I mean, we know there is duplicated code because you copy/pasted one constructor to make another one, doing that several times.
Amazing tutorial! I love that it's up-to-date with C# 10 and .Net6 because a lot of the courses I find seem to be C#9 and things have changed a bit so it makes it a bit harder to follow. I can't wait to see the new course you guys make up since we mashed the like goal!!
notes for myself: Built in Value Types: 9:36 Weird Stuff Missing and Visual Studio Setup: 19:53 String Variables: 26:44 Joining Strings: 29:03 Whole Numbers: 30:20 Floats: 30:42 Fixing New Template: 32:52 SO MUCH IMPORTANT STUFF THAT I FORGOT TO SAVE AAAAAA The rest is just in the chapters but ugh Custom Exceptions: 4:32:58
This is the best tutorial. You give small bits and then show the results, then move onto the next. The pace was perfect and especially your teaching method!
That's literally all you need for start, amazing tutorial! I respect the given time and efforts. Even, I still learned in details a couple of things that I didn't know.
1st task I've done like this : public class Task { public static void Main() // The task is to create a program to swap two numbers. { int a = 1; int b = 2; int c = 3 - a; a = c; int d = b - 1; b = d; System.Console.WriteLine("a is = " + c + ", " + "b is = " + d); } }
That's not swapping the values, though. You get the correct result, but are not implementing the requested task. If the code is change to ... int b = 7, then your code no longer works. But an actual swap method would work.
Really interesting. I am a Junior React Typescript Developer and I am super interested in C#, it is insane how much of these programming languages is done the same way. I always thought the this keyword is JS specific. Once you know one programming language it is super easy to pick up on another one 😊
You might want to look at the chapters... "Changes in NET 6" seems to be almost an hour long, but that part only lasts for a few minutes and runs into an introductory tutorial about types, variables, scope, etc. It could be confusing to beginners.
1:29:18 so good explained 👍👍 I saw a lot of programming courses without any explanation....just switching phrases i thought...it could be so much easier like you explained it..loved it
Now look at line 8. It has ... "string[] args". args is short for arguments. So the main method has a parameter named arguments?!?! Therefore, any arguments passed to that method are received into the parameter arguments. I consider that a misnomer: the wrong name is used. But it is convention. It would be better if the convention was to use ... "string[] parms".
Took me a bit to figure out why ArrayList wasn't working for me: I had named my new project "ArrayList" which by default in Visual Studio creates a namespace named "ArrayList" and apparently having a namespace name the same as the class you're calling is not a good idea. I just thought I'd try to help any other new people like me making the same mistake because I couldn't find this information by searching for answers.
Lots of love from me. I have understood a lot of the concepts more clearly watching your video. Thanks a lot! You are an exceptional instructor.❤⭐️⭐️⭐️⭐️⭐️⭐️
BroCode! Can you please make a tutorial on Windows Presentation Foundation? Just as Java has a GUI tutorial, I would also really love to see a GUI tutorial for C#.
This is gonna take a couple of days just to get through. But its better then downloading some random OBD II reader programm from the app store that may cost me 2 Euros. Its better to just get on with learning this. But I do get the feeling this is gonna be like learning to talk all over.
So far, at 1h34 into the course, I don't understand why the console.Read() is required. The dude before the 2nd guy never used Read() and got the same results.
Console is a class name that has a static function in it, we call that function so that we can capture/take an input from the user, in this case the programmer, in a nutshell that is what that function Read() does it comes with another version Readline() which expects an entire line from user keyboard instead of just one key. In this scenario we want to print something on the console and the console does that and shuts off as soon as it's done displaying, it does not wait for the user/programmer to even see what is displayed. To make the console wait until and unless we give it a key we use Console.Read().
I am now 4 hours 30 minutes in and I still have not seen anything from C# 10. What I see is old, and I believe all of it would work back in C#6. There are no features that were introduced in C# 10, or C# 9, or C# 8, etc. I mention this because I figured that by now they would have shown simple updates to the basic things they have covered. For example, they covered variables, but not the newer feature of nullable value types; they covered outputting strings, but not the newer feature of string interpolation; etc. These features have been available for the past several versions of C# and are useful at the beginning level (these are not "advanced" topics such as async and await).
That does not meet the specified requirements. If the code is changed to .... byte a = 17 then your code will output the wrong result. A swap program would swap the values no matter what they are.
4:30:16 There is an error coming up. He says that private methods can be called from the Box class itself or from classes that inherit from the Box class: that is incorrect. Private methods can only be called from the class they are defined in, not from derived classes. The access modifier that would allow a (non-static) method in the Box class to be called from the Box class itself or from classes that inherit from the Box class is ... protected. I thought maybe he just messed up once, and wasn't going to mention it. But a minute or two after he says it wrong the first time, he says it wrong again.
Yes, that is correct: don't use ArrayList if there is an alternative. I am over 5 hours into the course and I have not seen it yet, but the problem with ArrayList is that is usually uses boxing and unboxing, which can harm performance. For example, if the ArrayList is for integers, then every time you store a new integer in the ArrayList it first has to be boxed, which requires (a) creating a location in memory on the heap to store the value, (b) creating a reference that points to that location in memory on the heap, and (c) writing the value to the location on the heap. All of that requires extra overhead. Great, but now to read the values in the ArrayList requires unboxing, which involves reading the reference to get the memory location on the heap, then reading that integer value on the heap and assigning it to a local variable. That also requires extra overhead.
Honestly? So far, this is one of the best beginner tutorials for C# that I've seen. Very well paced and explains things well without rushing over things. Right now, I'm in the process of trying to go from a beginner to coding to being familar with Blazor Webassembly for a job. Finished a course on html, and that was fairly easy, but I've been having difficulty with C#, which this video has been very useful for me for. I'm thinking that after this, I'm going to try and learn how databases tie in with Visual Studio and C# and then try and learn razor pages in order to start getting familar with Blazor WebAssembly. Do you have any suggestions on what I should focus on after this video or any resources or even another video of yours you could direct me to?
@@tutorialsEU can't really wait for this, your teaching style is simply awesome. you can consider doing something short on domain driven design(DDD), authentication and authorization with identity server4, oauth2 and open id. then may be design architecture and pattern. thanks
Hey there. Should I be aware of anything regarding this course on youtube versus the c# masterclass on your website? I just enrolled/subscribed and am taking that c# masterclass on the website. Should I be following this one on youtube instead?
🚀 Skyrocket your C# skills with our premium C# Masterclass academy.tutorials.eu/p/complete-c-masterclass
This course is awesome, clean and concise. The best part is that they actually tell you WHY some stuff are useful instead of just saying that something it is useful, but with no solid reasons.
This course is brilliant for beginners. I checked few course at plural sight and did not get anything. At the end, I looked at RUclips and found this amazing course free of charge.
Great Tutorial. I went through the video from the first minute (Welcome to this 7-hour C# course!) to the last minute (Thank you for watching!). The first long tutorial I will complete without skipping. Thank you for this video. I hope we get the 1,500 likes.
That's awesome!
I contributed in decrementing your likes.
I am returning to coding after a long gap. To be honest I didnt found any other tutorial this much helpful. Starting from a noob. Thumbs Up 👍
This tutorial is very good. I used to write code quite a lot around 20 years ago with Pascal and C++, but just checking through this video, it all comes back to me. I am also more curious about C# now. it seems even better for me, than C++
Glad it was helpful!
4:10:05 That is the old and inferior - very old and very inferior - way of doing it. They introduced optional parameters I think more than a decade ago.
Even with what you have so far on screen, the better way to do it is:
public Human(string firstName, string lastName, string eyeColor, int age = 0)
Now age is an optional parameter. If the caller passes an argument for age (say, 32), the value they passed is used: if they call the constructor without giving an argument for age, then the default value of 0 (specified in the method signature using ... = 0) is used.
The 1 parameterized constructor with an optional parameter does the job of the 2 parameterized constuctors you have.
And now you are making it worse. You are asking the developer to create even more paramterized constructors, in case another parameter is not given a value on instantiation.
So your developer will have 5 or 6 parameterized constructors instead of just 1.
Worse still, if you want to take all possibilities into consideration, you would have to create a slew of pamaterized constructors, such as:
1) Caller passes only firstName
2) Caller passes only lastName
3) Caller passes only eyeColor
4) Caller passes only age
5 ) Caller passes only firstName and lastName
6 ) Caller passes only firstName and eyeColor
7 ) Caller passes only firstName and age
8 ) Caller passes only lastName and eyeColor
9 ) Caller passes only lastName and age
10) Caller passes only eyeColor and age
11) Caller passes firstName, lastName, and eyeColor
12) Caller passes firstName, lastName, and age
13) Caller passes lastName, eyeColor, and age
14) Caller passes firstName, lastName, eyeColor, and age
But if you use optional parameters for all 4 (firstName, lastName, eyeColor, and age), then a single constructor would handle all of the above cases.
And worse again, if you add one more field, such as gender, you are going to have to add more parameterized constructors.
Finally, you have a lot of duplicated code in your many parameterized constructors. For example, multiple parameterized constructors will have code to set the value for firstName and lastName. I mean, we know there is duplicated code because you copy/pasted one constructor to make another one, doing that several times.
Great Tutorial, But could you please also make a series on C# Advanced topics like LINQ, LAMBDA, Generics, ... etc.
For the swap at 1:14:00 ~ you can also do
a += b;
b = a - b;
a -= b;
Console.Read is just waiting for input. It is not "reading" what was before.
You deserve all the likes including mine!!! ❤❤❤
Amazing tutorial! I love that it's up-to-date with C# 10 and .Net6 because a lot of the courses I find seem to be C#9 and things have changed a bit so it makes it a bit harder to follow. I can't wait to see the new course you guys make up since we mashed the like goal!!
Was this tutorial good?
notes for myself:
Built in Value Types: 9:36
Weird Stuff Missing and Visual Studio Setup: 19:53
String Variables: 26:44
Joining Strings: 29:03
Whole Numbers: 30:20
Floats: 30:42
Fixing New Template: 32:52
SO MUCH IMPORTANT STUFF THAT I FORGOT TO SAVE AAAAAA
The rest is just in the chapters but ugh
Custom Exceptions: 4:32:58
This is the best tutorial. You give small bits and then show the results, then move onto the next. The pace was perfect and especially your teaching method!
That's literally all you need for start, amazing tutorial! I respect the given time and efforts. Even, I still learned in details a couple of things that I didn't know.
I must say you are a great teacher by far better than reading a published book!
thanks!
1st task I've done like this :
public class Task
{
public static void Main()
// The task is to create a program to swap two numbers.
{
int a = 1;
int b = 2;
int c = 3 - a;
a = c;
int d = b - 1;
b = d;
System.Console.WriteLine("a is = " + c + ", " + "b is = " + d);
}
}
That's not swapping the values, though. You get the correct result, but are not implementing the requested task.
If the code is change to ... int b = 7, then your code no longer works. But an actual swap method would work.
Thanks Man I Knew C# But When i watched I Got more information about it
Please .net core beginer to advance would be very much appreciated. Thanks for the effort
Really interesting. I am a Junior React Typescript Developer and I am super interested in C#, it is insane how much of these programming languages is done the same way. I always thought the this keyword is JS specific. Once you know one programming language it is super easy to pick up on another one 😊
that's cuz Typescript and C# were designed by the same person. Good catch bro
@@jamalabdulnaaser1026 Well, then Microsoft seems to employ an awesome person :)
You might want to look at the chapters... "Changes in NET 6" seems to be almost an hour long, but that part only lasts for a few minutes and runs into an introductory tutorial about types, variables, scope, etc. It could be confusing to beginners.
Seven semesters of computer science and I can now finally understand all of this video
this is the first studing video i have learned that has 7hours,oh,that's cool!
Need c# best practices for beginners. Have reached 1.5k likes within 1 month. Thanks for this awesome video. Really appreciate your help
We are working on it :)
1:29:18 so good explained 👍👍 I saw a lot of programming courses without any explanation....just switching phrases i thought...it could be so much easier like you explained it..loved it
Now look at line 8. It has ... "string[] args". args is short for arguments. So the main method has a parameter named arguments?!?! Therefore, any arguments passed to that method are received into the parameter arguments.
I consider that a misnomer: the wrong name is used. But it is convention. It would be better if the convention was to use ... "string[] parms".
This author has a very very good talent in explaining things very clearly. Subbed and learning :)
Took me a bit to figure out why ArrayList wasn't working for me: I had named my new project "ArrayList" which by default in Visual Studio creates a namespace named "ArrayList" and apparently having a namespace name the same as the class you're calling is not a good idea. I just thought I'd try to help any other new people like me making the same mistake because I couldn't find this information by searching for answers.
The way of teaching is amezing ❤️
Love from India 🇮🇳🇮🇳🇮🇳
I think, thank you is a very small word. But should say a big thank you for making c# so easy for us to learn.
Great course! Another solution for the 1st exercise is that you can just do (a, b) = (b, a);
so cool learned everything i need to know! im a professional c# sin your software engineer
Thank you so much. This is a really well detailed tutorial for C#
Lots of love from me. I have understood a lot of the concepts more clearly watching your video. Thanks a lot! You are an exceptional instructor.❤⭐️⭐️⭐️⭐️⭐️⭐️
6:49 10:53 15:45 18:39 29:30
thank you very much. simple, interisting and understandable
You are a great instructor :)
I've watched a lot of videos on c#, and glad you always tress the important points. Thanks
Thank you so much for this one, I hope you can do intermediate or advanced course for c#
There are fantastic courses on this channel. I learned a lot from them.
BroCode! Can you please make a tutorial on Windows Presentation Foundation? Just as Java has a GUI tutorial, I would also really love to see a GUI tutorial for C#.
Could you please make videos about sample projects A-Z including everything. Big help.Please
WoW...German discipline in action.....Thank you ...will soon join your course.
Thank you for making this fantastic course on C#!
1:05:25 save for reference
Thank you so much!
No worries!
You are just Awesome Jann!!
really Thanks for the free course , its really helpful...
sure thing! :)
Amazing one of the best tutorial vid here in YT
This is gonna take a couple of days just to get through. But its better then downloading some random OBD II reader programm from the app store that may cost me 2 Euros. Its better to just get on with learning this.
But I do get the feeling this is gonna be like learning to talk all over.
Thank you for this great ideea!
great video, the only thing bothering me is that you say there will be a section about inheritance and there wasnt any
Thanks! You are the real hero
Thx for this, it helped me a bunch, I followed a couple of other tutorials, but this one helped clear all the little things I was confused about.
Great tutorial! but I want to know more about OOP in c#.
please can you make more video.
Great Video, Thanks for sharing, please make one full video of Blazor WSAM.
Great course, thanks!
46:50-51:50-56:50
Great tutorial bro!!! coming from java...
awesome to have you here
Amazing!
Greatly explaining really appreciated 👍
Nice! :)
♥️ have you a video explain ASP.Net 6 Core MVC?
Hi, I'm Yopi from Indonesia, can you add subtitles to this video, I'm not very good at English.
So far, at 1h34 into the course, I don't understand why the console.Read() is required. The dude before the 2nd guy never used Read() and got the same results.
It's there so that the program doesn't end right away after it's done
Console is a class name that has a static function in it, we call that function so that we can capture/take an input from the user, in this case the programmer, in a nutshell that is what that function Read() does it comes with another version Readline() which expects an entire line from user keyboard instead of just one key. In this scenario we want to print something on the console and the console does that and shuts off as soon as it's done displaying, it does not wait for the user/programmer to even see what is displayed. To make the console wait until and unless we give it a key we use Console.Read().
I am now 4 hours 30 minutes in and I still have not seen anything from C# 10. What I see is old, and I believe all of it would work back in C#6. There are no features that were introduced in C# 10, or C# 9, or C# 8, etc.
I mention this because I figured that by now they would have shown simple updates to the basic things they have covered. For example, they covered variables, but not the newer feature of nullable value types; they covered outputting strings, but not the newer feature of string interpolation; etc. These features have been available for the past several versions of C# and are useful at the beginning level (these are not "advanced" topics such as async and await).
Thanks!
Subscribed to your paid course on your web
Thanks a lot!!
Nice C# learning
Simply amazing for any beginner to C#!!
Could you make a tutorial of this in a playlist that covers all the fundamentals of this language? Thanks in advance.
I did the exercise 01:11:15 like this:
byte a = 5;
byte b = 20;
a = b;
b = 5;
Console.WriteLine($"a = {a} e b = {b}");
is this correct? Nice course.
It's not correct. If you would replace "a" with different number it would be incorrect. :P
The purpose of the exercise was to avoid using numbers when reassigning a value. Although the output is correct, the method used is incorrect.
That does not meet the specified requirements. If the code is changed to .... byte a = 17 then your code will output the wrong result. A swap program would swap the values no matter what they are.
Really wonderful class...
4:30:16 There is an error coming up. He says that private methods can be called from the Box class itself or from classes that inherit from the Box class: that is incorrect. Private methods can only be called from the class they are defined in, not from derived classes.
The access modifier that would allow a (non-static) method in the Box class to be called from the Box class itself or from classes that inherit from the Box class is ... protected.
I thought maybe he just messed up once, and wasn't going to mention it. But a minute or two after he says it wrong the first time, he says it wrong again.
Awesome tutorial , thanks
You Are great Sir
I read that you shouldn't use ArrayList. You should use List instead. Is that correct?
ArrayList is apparently much worse.
Yes, that is correct: don't use ArrayList if there is an alternative.
I am over 5 hours into the course and I have not seen it yet, but the problem with ArrayList is that is usually uses boxing and unboxing, which can harm performance. For example, if the ArrayList is for integers, then every time you store a new integer in the ArrayList it first has to be boxed, which requires (a) creating a location in memory on the heap to store the value, (b) creating a reference that points to that location in memory on the heap, and (c) writing the value to the location on the heap. All of that requires extra overhead. Great, but now to read the values in the ArrayList requires unboxing, which involves reading the reference to get the memory location on the heap, then reading that integer value on the heap and assigning it to a local variable. That also requires extra overhead.
Good tutorial. Few recommendations. Break the video up into separate videos (more revenue for you, right?). Also, add Interfaces to the agenda :)
34:20-44:20
Thanks a lot!!!!!!!!!!
Thanks for the video! Amazing!
Honestly? So far, this is one of the best beginner tutorials for C# that I've seen. Very well paced and explains things well without rushing over things.
Right now, I'm in the process of trying to go from a beginner to coding to being familar with Blazor Webassembly for a job. Finished a course on html, and that was fairly easy, but I've been having difficulty with C#, which this video has been very useful for me for. I'm thinking that after this, I'm going to try and learn how databases tie in with Visual Studio and C# and then try and learn razor pages in order to start getting familar with Blazor WebAssembly. Do you have any suggestions on what I should focus on after this video or any resources or even another video of yours you could direct me to?
Hey i want to learn c# as a beginner after this tutorial what should i take can you recommend
What an incredible course! I've watched everything till the end. Thank you very much for putting so much effort into this. Cheers from Brazil.
Glad you enjoyed it!
DO A TUTORIAL ON 2D TEXT SIMULATORS (Music Maker, Business Manager, life simulator) There is NOTHING to help with this
Please which Lenovo Thinkpad or any other budget laptop would you suggest for someone start off in codin
Great tutorial as always. Are you considering doing a tutorial about .Net MAUI?
yes we will cover maui soon :)
@@tutorialsEU can't really wait for this, your teaching style is simply awesome. you can consider doing something short on domain driven design(DDD), authentication and authorization with identity server4, oauth2 and open id. then may be design architecture and pattern. thanks
so perfect explain thanks
Hey there. Should I be aware of anything regarding this course on youtube versus the c# masterclass on your website? I just enrolled/subscribed and am taking that c# masterclass on the website. Should I be following this one on youtube instead?
Hi, no follow the course on our website :) It covers way more topics
Amazing tutorial sir ❤️
8:12 this is why I never got anywhere with C type languages. So arcane and wordy.
I'm so like studing!!!😍
I fell asleep three times trying to watch this video
We need more of MVC please
MVC in which context?
The models please
@@tutorialsEU A entire RUclips course (or playlist) of MVC 5 could be really useful.
I LOVETHIS THANK YOUUUU
I wanted to try out the site but you stopped running the 7 day free trial :(
So helpful tutorial well done
Thank you! Cheers!
Is there a way to change the behavior of the MDI Child so that when they are minimized they show up as icons with their corresponding label?
great video!
Thank youuuu so much siirrrrr😊
Feb 13 34:20
thank you
4:12:00