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 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 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++
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!!
This course is brilliant for beginners. I checked few course at plural sight and did not get anything. At the end, I looked at RU-vid and found this amazing course free of charge.
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.
I started programming in C# when it first came out but haven't done so in over a decade (switched to Ruby). Visual Studio has changed SO MUCH! This was a great refresher so thank you.
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.
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!
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.
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.
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".
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.
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#.
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().
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.
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.
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.
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).
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?
06:15:00 getting errors Argument 1: cannot convert from 'System.Collections.Generic.List' to 'string' partyFriends.Add(currentFriend); and list.Remove(currentFriend); and Cannot implicitly convert type 'string' to 'System.Collections.Generic.List' for return shortestName;
@@tutorialsEU explaining delegate/event handling. Deeper advanced OOP in many classes. Multiple Object handling and shortcuts I bought your C# masterclass in German on Udemy. It was quite good to be honest. But at some parts not pretty deep especially delegates and OOP. But still definitely advisable 😜👍
@@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
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.
Cause If you dont have "Console.Read()" You only can see the code for some seconds. If you write "Console.Read()" You actually can have your terminal open for what time you want
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?
This tutorial is great, but it does not teach me how to bake pretzels ;) I learn by observing how bigger projects work, and then learn the rules for that. For example I want to see the code for a GUI app - calculator with buttons and user input. Different ways and languages to achieve that, and then studying all the parts of it, what was used and how it was written. For example that "WxWidgets" was used in C++, or Pygubu in Python, or Lazarus in Delphi, etc.
Yeah, you are watching the wrong video. I am sure if you google or youtube search the examples you provided you will get videos with exactly what you are looking for. This type of video is to introduce beginners to programming concepts and syntax. Cheers :)