Edited wording and added emojis

This commit is contained in:
katiesavage 2022-05-06 12:12:05 -07:00
parent fd9c08bf84
commit 8639dcdc42

View file

@ -1,4 +1,4 @@
# C# Crash Course
# C# Crash Course 🚀
In this C# Crash Course, we'll go over the basics of C# so that you'll be ready to build out exciting web apps! We'll start by going through the key attributes of C#, syntax basics, and introduce you to OOP. In each section, we'll link you to some quick in-browser C# challenges so you can apply these concepts.
@ -25,6 +25,7 @@ A **compiler** converts the code you write into a format that your computer can
---
# The basics
## 🌍 Hello World
Here's a piece of code that will print "Hello world!" to the console.
```csharp
@ -32,15 +33,23 @@ using System;
Console.WriteLine("Hello world!");
```
## Keywords
With C#, you use **keywords** like *using* and *Console*.
With C#, you use keywords like `using` and `Console`.
**Keywords** are predefined, reserved identifiers that have special meanings to the compiler.
## Accessing methods
The `. (DOT)` in *Console.WriteLine* allows us to access methods and properties. In this example, **Console** is a type that represents the console window. **WriteLine** is a method of the Console type that prints a line of text to that text console.
The `. (DOT)` in `Console.WriteLine` allows us to access methods and properties. In this example, `Console` is a type that represents the console window. `WriteLine` is a method of the Console type that prints a line of text to that text console.
## Parameters
In this example, we use parentheses pass a string as a parameter to *Console.WriteLine*.
In this example, we use parentheses pass a string as a parameter to `Console.WriteLine`.
## 🚨 Challenge 1
Time for your first challenge!
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
1 | [Hello World Challenge](https://docs.microsoft.com/learn/modules/csharp-write-first/2-exercise-hello-world/?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.csharp-first-steps)| N/A | 3 min | case sensitive, strings, comments | [Intro to C# Tutorial](https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/tutorials/hello-world?WT.mc_id=csharpnotebook-35129-website), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
## Variables
In C#, **variables** allow you to temporarily store a value in memory. In C#, you must declare a variable before using it.
@ -51,6 +60,11 @@ In this example, we created a string called `cSharp`. You can use the var keywor
Variable names can contain alphanumeric characters and underscores, but no special characters. They also cannot be keywords.
## 🚨 Challenge 2
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
2 | [Variables Challenge](https://docs.microsoft.com/learn/modules/csharp-literals-variables/6-challenge )|[Solution](https://docs.microsoft.com/learn/modules/csharp-literals-variables/7-solution)| 5 min | variables, data types, strings, ints, decimals | [String formatting tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-formatting/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
# Syntax cheat sheet
## Semicolons
Every statement is ended by a semicolon
@ -66,6 +80,8 @@ Variable names can contain alphanumeric characters and underscores, but no speci
C# is case sensitive! For example, a variable "cat" is completely different from a variable "CAT".
```csharp
var cat = "meow";
```
```csharp
var CAT = "rawr";
```
@ -81,8 +97,28 @@ Variable names can contain alphanumeric characters and underscores, but no speci
| ++ | increment |
| -- | decrement |
## 🚨 Challenge 3
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
3 | [Operating on numbers challenge](https://docs.microsoft.com/learn/modules/csharp-basic-operations/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-basic-operations/6-solution)| 2 min | ints, decimals | [Number operations tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-operations/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
## Decision logic
In C#, you can build applications that employ decision-making logic so that your application performs different instructions based on a set of conditions. One way we do this is with an `if` statement. `if` statements are made up of three parts:
* The if keyword
* A Boolean expression between parenthesis ()
* A code block defined by curly braces { }
If there are multiple condition, you can utilize the `else if` and `else` statements. Basically, if the `if` statement fails, these other statements allow you to test against other conditions.
You can imagine this in the context of a rock⛰-paper📃-scissors✂ game. Imagine you chose rock⛰.
`if` your opponent chooses scissors✂, then you will win
`else if` your opponent also chooses rock⛰, then you will tie
`else` your opponent chooses paper📃, then you will lose
Each possible decision your opponent could make leads to a different outcome.
## Boolean expressions
We use booleans to compare two or more things.
Booleans are expressions that return either `true` or `false`. They are often used to compare two or more things.
| symbol | what it does |
| --- | ---------- |
| < | less than |
@ -91,6 +127,11 @@ Variable names can contain alphanumeric characters and underscores, but no speci
| >= | greater than or equal |
| == | equal |
| != | not equal |
## 🚨 Challenge 4
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
4 | [Decision logic challenge](https://docs.microsoft.com/learn/modules/csharp-if-elseif-else/4-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-if-elseif-else/5-solution)| 2 min | if, else if, else, booleans | [Boolean expressions tutorial](https://docs.microsoft.com/learn/modules/csharp-evaluate-boolean-expressions/1-introduction), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
---
@ -104,6 +145,12 @@ Objects inherently have attributes. In C# we call these **properties**. The attr
We can also define **methods** which describe what an object can do. For example, you can sell your house.
To summarize these concepts using our house example,
A Class is like a blueprint 📜
An Object is an instance of this blueprint, or a house 🏠
The Properties of a house could be the number of doors it has or the color it's painted 🚪 🎨
A Method of our class is that we can sell our house 💸
Let's look at an example House class:
```csharp
// The namespace declaration provides a way to logically organize your classes
@ -131,7 +178,7 @@ public House(string address, int squareFeet)
this.Size = squareFeet;
}
```
When we create an object with **new** this constructor will be called.
When we create an object with `new` this constructor will be called.
```csharp
using Classes;
@ -139,15 +186,14 @@ using Classes;
var house = new House("123 Candy Cane Lane", 1500);
```
# Mini Challenges!
Each of these mini challenges is designed so that you can apply C# concepts to mini coding exercises. These challenges are all sourced from Microsoft documentation and will allow you to get coding inside your browser. Easy peasy!
## The .NET Class Library
C# also has built in classes and functionality within the .NET Class Library. The .NET Class Library is a collection of thousands of classes containing tens of thousands of methods. These methods are created by Microsoft and are available for use in your applications. For example, when we called `Console.WriteLine` earlier, we were calling a method from the `System.Console` class. For a more in-depth overview, you can read up on the .NET Class Library in the [.NET documentation](https://docs.microsoft.com/dotnet/standard/class-library-overview).
## 🚨 Challenge 5
| # | Challenge | Solution | Duration | What you will learn | More information |
|-| ------------------------------- | ------------------------------- | ----------- | -------------------------------------- | - |
1 | [Hello World](https://docs.microsoft.com/learn/modules/csharp-write-first/2-exercise-hello-world/?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.csharp-first-steps)| N/A | 3 min | case sensitive, strings, comments | [Intro to C# Tutorial](https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/tutorials/hello-world?WT.mc_id=csharpnotebook-35129-website), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
2 | [Variables](https://docs.microsoft.com/learn/modules/csharp-literals-variables/6-challenge )|[Solution](https://docs.microsoft.com/learn/modules/csharp-literals-variables/7-solution)| 5 min | variables, data types, strings, ints, decimals | [String formatting tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-formatting/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
3 | [Operating on numbers](https://docs.microsoft.com/learn/modules/csharp-basic-operations/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-basic-operations/6-solution)| 2 min | ints, decimals | [Number operations tutorial](https://docs.microsoft.com/learn/modules/csharp-basic-operations/), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
4 | [Making clean code](https://docs.microsoft.com/learn/modules/csharp-readable-code/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-readable-code/6-solution)| 5 min | topics | [C# coding conventions](https://docs.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) | [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
5 | [.NET Class Library challenge](https://docs.microsoft.com/learn/modules/csharp-call-methods/5-challenge)|[Solution](https://docs.microsoft.com/learn/modules/csharp-call-methods/6-solution)| 2 min | ints, decimals | [.NET documentation](https://docs.microsoft.com/dotnet/standard/class-library-overview), [C# documentation](https://docs.microsoft.com/dotnet/csharp/) |
# Bonus and more ways to connect