
Explore the Console class in C#, using System and Console members, call public static void methods like WriteLine and Beep, and clear the screen after printing and beeping.
Discussions:
1. Navigate to the .NET Framework source code
2. Find the Console class
3. Point out how methods like WriteLine are programmatically defined here
4. Emphasize what it means to invoke a method with an argument
Discussions:
1. Relate dot notation to namespaces, classes, and class members like methods
Declare an integer variable to represent line numbers inside main, assign and update its value, and print it using string interpolation with a dollar sign and braces.
Explore how data types like integers, doubles, and strings behave in C#, and how explicit casting can lose fractional parts or trigger conversion errors.
Learn how to describe an object with multiple data types in C# by modeling a clown with string name, double height, decimal price, and boolean hasUmbrella.
Learn to print multiple variable values in c# by building a descriptive string with string interpolation, formatting price with a dollar sign, and controlling line breaks for console output.
Learn how to use the debugger in Visual Studio to set breakpoints, step into code, and inspect the locals window and call stack as variables update.
Learn to use the Visual Studio 2017 debugger in C# console programs to minimize implicit method calls, inspect format and concat calls, and step through code via breakpoints.
Explore declaring salaries in c# using int and decimal, with currency formatting. Learn to compute totals and averages with string interpolation and currency formatting using colon-based formatting.
Refactor the code to compute the sum of salaries once using the decimal type and plus operator, then divide by the count and observe currency format rounding to two decimals.
Learn to read input from the console in C# with Console.ReadLine, assign it to a string, and display it with Console.WriteLine, then convert it with ToUpper or ToLower.
Learn to use the string class Concat method in C# by assembling multiple strings into a single result, using the System namespace and the static method.
Learn to read user input from the console, parse it to a numeric double, perform arithmetic (such as adding five or multiplying by ten), and display the result.
Extend the console program to read a second value, display the product of the two inputs, and explore parsing doubles and using the System namespace.
Analyze a C# parse error in Visual Studio 2017 by tracing the error message, path, and line number to understand string-to-number conversion.
Learn how to chain methods on a single object in C# by calling string operations in sequence, such as trim followed by to upper, with both returning new string objects.
Explore how to understand and use basic properties in the console, such as background color and title, via public static properties, the system namespace, and the console color enumeration.
Understand how conditions in C# use operators like ==, !=, <=, and > to produce boolean true or false. Learn to replace hard coded values with variables for flexible comparisons.
Master if/else checks in C# with Visual Studio by using the comparison operator, debugging reachable versus unreachable code, and replacing hardcoded values with variables.
Learn to use a sequence of if, else if, and else to compare two values in C# (x and y) and display the result with string interpolation.
Learn to use the debugger to step into if/else logic, initialize variables, and inspect condition values, enabling you to trace program flow and understand true and false branches.
Employ string.Contains to decide if a string includes a substring, a boolean for if/else. Replace values with variables for flexibility, and observe text found or text not found during debugging.
Use TryParse to safely convert user input to a double, receiving a boolean success flag and an out value, with zero on failure and a clear error message.
Explore how TryParse uses an out parameter to return a boolean and a value, showing how to declare the out variable and pass it to the method for stable code.
Learn to use TryParse for multiple inputs in a C# console program, prompting for two values and converting them to numbers. Handle input errors and flow in Visual Studio 2017.
Explore compound operators in C# by declaring and updating a variable, using post-increment and pre-increment, and applying assignment operators such as plus equals with arithmetic like division and multiplication.
Learn to build a while loop that prints values from 1 to 10 using a loop counter, a <= 10 condition, braces for a code block, and ++ increments.
Create and run a while loop that counts down from a high value to a low value, adjusting the loop counter and condition, and observe reachable code in Visual Studio.
Learn to implement a while loop that collects an indefinite number of inputs until the user types exit, building a final text string by concatenating each entry.
Learn to write and run for loops in C# by printing squares from 1 to 5, comparing with while loops, and modifying to compute cubes for 5 to 7.
Explore for loops from a high to low value by printing cubes and squares, switch to decrementing with i minus equals three, and debug infinite or unreachable loops.
Adjust for loop indexes by transforming the value list (add two) and compensating in the loop body (subtract two) to output 1 times 1, 2 times 2, 3 times 3.
Learn how strings are indexed from 0 to length-1, read the length property, and use substring with a start index and length to extract characters and avoid out-of-range errors.
Explore iterating over strings with for loops in C# using index, length, and substring to access characters, and learn rules for starting at 0 or length-1 and reversing a string.
Learn to iterate a string with foreach in C#, treating each character as a char, and use Char.IsNumber, Char.IsLetter, and Char.IsPunctuation to conditionally filter and print numbers and punctuation.
Explore how strings in C# are immutable in memory, using Visual Studio 2017, by comparing memory addresses when applying + and += to reveal new string instances.
Observe the mechanical execution of a for loop in Visual Studio by stepping through code to see the condition check, increment, and repeated actions until the condition becomes false.
Explore working with generic lists in C# by creating a decimal list, initializing with a collection initializer, and using LINQ methods to calculate sum, average, min, and max.
Explore how to apply action to each entry in a C# list with foreach in Visual Studio 2017, using strings and decimals, and operations such as upper, lower, and square.
Enter values to build a list of doubles in a Visual Studio 2017 console program using read line and TryParse, then display the average with string interpolation.
Explore the ternary operator in c# by evaluating a boolean condition and returning a value when true or false. The lesson shows strings, types, and printing results.
Demonstrates ternary operator usage with string methods in C# to evaluate input and return a boolean result, then display true or false based on whether a string contains a substring.
Rewrite the last video's code to a more compact version that still returns a boolean, using read line prompts, contains checks, and printing with right line.
Explore using a basic switch block in C# to perform division, multiplication, addition, and subtraction based on an operation symbol. Learn to replace hardcoded values with variables for debuggable code.
Explore how a C# switch block transfers control between cases while debugging, stepping through code, and using break to exit; observe plus, subtraction, division, and multiplication paths.
Explore how C# handles division by zero, using switch blocks and if statements to output cannot divide by zero when y equals zero, and perform division otherwise.
Learn how the logical and operator (&&) evaluates two conditions in C# to yield true only when both are true, with short-circuit evaluation and practical true/false examples.
Explore how to use two logical conditions with the and operator in a C# console program, evaluating true and false to control if statements and discounts.
Learn to use a while true loop with break and continue. Use try parse for safe input and exit via console key, then clear the console.
Explore the or operator in C# using Visual Studio, showing how the || logical operator yields true when either side is true, with short-circuit behavior and if-else blocks.
Apply multiple or conditions with foreach in C# to count vowels in a user input, increment a vowel counter, and display vowel and other character counts in Visual Studio 2017.
Learn how to create and call static void methods in C#, using main as the entry point, and display a title and console background color.
Explore how properties in C# work, focusing on get and set accessors, how public and static modifiers affect access, and how each accessor runs like a block of code.
Create and run methods that return values, define one-parameter methods with double or decimal types, and ensure type matching when calling and printing results in main.
Navigate the call stack and parameters as local variables, and observe how the locals window and stack trace reveal scope changes as methods like divide by 5 execute.
Explore how to convert methods to expression body syntax in C#, using arrow notation, removing braces and return statements, and switch back to block notation in Visual Studio 2017.
Create a method with two parameters and a return value to compute interest as amount times rate, using the decimal data type, static invocation, and currency formatting in C#.
Learn to write a method with parameters validating amount and rate greater than zero. Use logical and operator, add time parameter to compute interest, and return zero if inputs invalid.
Explore implementing a modern switch block in C# to rewrite a sine method from the math class, handling negative, zero, and positive values with return statements in Visual Studio.
Learn how C# division returns quotient and remainder using an out parameter, with modulo and integer types, inside Visual Studio 2017 console programs.
Learn how to prevent crashes in c# console programs by using try-catch to handle division by zero, catching System.DivideByZeroException, and displaying the exception message, source, and stack trace.
Learn to prevent crashes by wrapping user input parsing in a try/catch block, catching format exceptions, and displaying a friendly message instead of a stack trace.
Diagnose null reference errors in C# by initializing strings and lists, so an object lives in memory. Use a simple try/catch with System.Exception to gracefully handle such errors.
Define a method that takes a string parameter and returns a string, using substring(0,1) to obtain the first letter and handling potential argument out of range exceptions.
Create a method that returns a tuple by extracting parts from a string using substring and index of. Handle comma-delimited inputs like John Smith, 45 and prepare for using tuples.
Learn to encapsulate tuple-returning logic in a method, returning name and age as a tuple, and access the elements with dot notation to display them separately.
Explore using the where method from LINQ to filter a list of integers, returning an IEnumerable<int> of even numbers, and display results with foreach.
Wrap the prior example into a reusable method that returns IEnumerable<int> from a List<int>, using Where to filter and allowing a divisor parameter.
Learn to implement a C# params method that multiplies any number of inputs, initializing product to 1 and accumulating with product *= x.
Learn to use the split method on a string using a character array of separators to produce an array of substrings and print each name.
Explore how arrays and lists in C# are reference types; observe that A1 and A2 reference the same memory, and that list aliases share underlying values.
Explore passing by reference and by value with a simple data type. The video shows a double copy; changes inside the method do not affect the original variable.
Learn how to create and fill an array, iterate with a for loop from index 0 to length-1, and read or display values safely using the array's length.
Explore how string arrays store references in memory, with multiple entries sharing the same address, unlike integers and decimals; learn to inspect memory in Visual Studio to understand these differences.
Extend a two-by-two to a three-by-three multidimensional array in C# using Visual Studio, iterating row and column indices and assigning values to each cell.
Write a static decimal method that accepts an array, sums its decimal values with foreach, and returns the average by dividing the sum by the array length.
Learn how to populate a two-dimensional string array with nested for loops, using GetLength to adapt to any row and column sizes, and fill each cell with R{row}C{col}.
Learn to print a multidimensional array in c# using console programs by iterating rows and columns and formatting the output as a matrix.
Learn to create and print jagged arrays in C# by initializing arrays of grades and using nested foreach loops to display each student's grades on separate lines.
Very Important:
1. Friends, please take the time to review the curriculum carefully before buying so you can see exactly whether this is the right course for you. Please do not join until you have completed this step.
2. Please watch the free preview videos so you can see whether the presentation style works for you. Please remember I am just one person, and I make my videos often after I have been working for many hours already. PLease do not join until you have completed this step.
3. If something needs fixing, please let me know. Again, I'm just one person and not a big team of people. I will try to fix it as quickly as possible. Thank you.
Course Overview:
1. This course consists of standalone examples designed to illustrate specific skills. There are no big applications built in this course.
2. You must use Visual Studio 2017 to be sure you have the latest version of C# running. Lower versions of Visual Studio will cause errors because newer programming elements will not be found.
3. This is a beginners course, but I do not spare the details, even when they are very technical. This means in a few videos I show you the .NET Framework source code. I do this because it's important to look at things as they actually are, and not at an artificially simplified perspective.
4. I talk fairly slowly in some of the videos.
5. If you feel the way I talk is too slow for you, please watch at 1.25x, which you can set easily on the player.
6. I made the videos in 1080p HD. If you have trouble with the resolution, please try reloading the page a few times.
7. This course covers C# through console programs only. It does not have ASP.NET, Windows Forms, MVC, .NET Core or anything like that.
8. There are questions throughout the videos. At those times, please pause and try answering them. Success invariably results from understanding how the many small and intricate pieces of anything fit together. This takes time, consistent effort and a willing to push yourself. Success is the result of a whole-hearted effort, exerted daily and consistently. This is what years of struggle have taught me:)
9. The videos are just coding videos done in Visual Studio Community 2017. This is the free version of Visual Studio.
10. This is a course dedicated to code only, so you do not see any of the following: a talking head, PowerPoints or fancy graphics. To me, these are distractions that shift focus away from the things that truly matter.
11. Exercises start in video two. I have overlays embedded that say "Pause and try this: ...", with the specific question in place of the ellipses.
12. In some of the videos, there are several questions because I guide you through building a bigger piece of code.
13. Some of the videos don't have any questions.
14. All the code is written from scratch in the code editor window in Visual Studio Community 2017.
15. In some of the videos, I use the debugger to step through the code, line by line, and intricate detail by intricate detail.
16. I talk frequently about reading the various tips that show as you type in Visual Studio. You must learn how to read them because they provide valuable information.
17. In some of the videos, I show you how C# looks in your computer memory. You must look at the memory of your computer to truly understand what's happening. Just reading messages in the console window is not the same as truly understanding what they mean.
18. In some of the videos, I zoom in on various things I feel need special attention.
19. For the hearing-impaired, closed-captions are added automatically. I do not have control over those, so they might not be perfect.
On a personal note, I can tell you only that it is through consistent, WHOLEHEARTED effort, that something technical like a programming language can be learned. That's what I have learned from years of struggling. I would urge you to embrace this philosophy because it's a very powerful. I hope you will find great value in this course. Thank you for reading, and I will see you inside!
Tom