Skip to content

Commit 4e81b25

Browse files
authored
Updated links to include references for Fritz' (#31)
1 parent a29066a commit 4e81b25

File tree

3 files changed

+17
-17
lines changed

3 files changed

+17
-17
lines changed

notebooks/0101-FirstSession.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
"\n",
1111
"## Get C# to run locally #\n",
1212
"\n",
13-
"You can get all of the tools to build with C# locally on your Mac or PC by installing [Visual Studio or Visual Studio for Mac](https://visualstudio.com). You can also install just the build tools for Windows, Mac, or Linux by following the instructions at [dot.net](https://dot.net) For most of our streams to start, we will be writing code using [Jupyter Notebooks and .NET Interactive](https://github.com/dotnet/interactive).\n",
13+
"You can get all of the tools to build with C# locally on your Mac or PC by installing [Visual Studio or Visual Studio for Mac](https://visualstudio.com?WT.mc_id=visualstudio-twitch-jefritz). You can also install just the build tools for Windows, Mac, or Linux by following the instructions at [dot.net](https://dot.net?WT.mc_id=visualstudio-twitch-jefritz) For most of our streams to start, we will be writing code using [Jupyter Notebooks and .NET Interactive](https://github.com/dotnet/interactive).\n",
1414
"\n",
1515
"## What is C# ? #\n",
1616
"\n",
17-
"C# is a statically-typed, compiled, object-oriented language used with the .NET frameworks and runtimes. The [official Microsoft C# language reference](https://docs.microsoft.com/dotnet/csharp/language-reference/) can be found on docs.microsoft.com. Similar to Java in syntax and structure, C# programs are compiled and executed against a .NET runtime running on a computer. The output of compiling C# code can be called a '.NET program'.\n",
17+
"C# is a statically-typed, compiled, object-oriented language used with the .NET frameworks and runtimes. The [official Microsoft C# language reference](https://docs.microsoft.com/dotnet/csharp/language-reference/?WT.mc_id=visualstudio-twitch-jefritz) can be found on docs.microsoft.com. Similar to Java in syntax and structure, C# programs are compiled and executed against a .NET runtime running on a computer. The output of compiling C# code can be called a '.NET program'.\n",
1818
"\n",
1919
"> A .NET Runtime is a collection of commands native to the computer operating system that instruct the computer how to interpret and run a .NET program. \n",
2020
"\n",
@@ -188,7 +188,7 @@
188188
"source": [
189189
"## Everything in C# is an object #\n",
190190
"\n",
191-
"As C# is an object oriented language, everything we want to work with is an object. Objects can be declared of various **TYPES** and then interacted with. The simplest types in C# are called [**Built-In Types**](https://docs.microsoft.com/dotnet/csharp/language-reference/builtin-types/built-in-types)\n",
191+
"As C# is an object oriented language, everything we want to work with is an object. Objects can be declared of various **TYPES** and then interacted with. The simplest types in C# are called [**Built-In Types**](https://docs.microsoft.com/dotnet/csharp/language-reference/builtin-types/built-in-types?WT.mc_id=visualstudio-twitch-jefritz)\n",
192192
"\n",
193193
"We can define variables, in-memory storage for a type by preceeding the name of the variable we would like to create with the type of the variable we are creating."
194194
]
@@ -776,7 +776,7 @@
776776
"source": [
777777
"## Date Types\n",
778778
"\n",
779-
"Dates are a more complex data type that you can interact with by using the `DateTime` type. We can assign a new Date and time with a `new` statement to construct the DateTime type. [Complete documentation of the DateTime type](https://docs.microsoft.com/dotnet/api/system.datetime?view=netcore-3.1) is available at docs.microsoft.com"
779+
"Dates are a more complex data type that you can interact with by using the `DateTime` type. We can assign a new Date and time with a `new` statement to construct the DateTime type. [Complete documentation of the DateTime type](https://docs.microsoft.com/dotnet/api/system.datetime?view=netcore-3.1&WT.mc_id=visualstudio-twitch-jefritz) is available at docs.microsoft.com"
780780
]
781781
},
782782
{

notebooks/0102-Classes.ipynb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"\n",
1515
"## First, a word on memory utilization and garbage collection\n",
1616
"\n",
17-
"Memory with C# and .NET is dynamically allocated and reclaimed by the .NET runtime as you no longer reference variables. The .NET **Garbage Collector** runs occasionally, freeing memory that was previously used by variables. There are ways to tune the garbage collector and in-depth studies of how it manages memory that are much more advanced than this part of the series. If you'd like to read more, check the [official .NET garbage collector documentation](https://docs.microsoft.com/dotnet/standard/garbage-collection/fundamentals)\n",
17+
"Memory with C# and .NET is dynamically allocated and reclaimed by the .NET runtime as you no longer reference variables. The .NET **Garbage Collector** runs occasionally, freeing memory that was previously used by variables. There are ways to tune the garbage collector and in-depth studies of how it manages memory that are much more advanced than this part of the series. If you'd like to read more, check the [official .NET garbage collector documentation](https://docs.microsoft.com/dotnet/standard/garbage-collection/fundamentals?WT.mc_id=visualstudio-twitch-jefritz)\n",
1818
"\n",
1919
"## The Class keyword and defining reference types\n",
2020
"\n",
@@ -252,7 +252,7 @@
252252
"cell_type": "markdown",
253253
"metadata": {},
254254
"source": [
255-
"There's more intformation in the [class keyword reference in the official documentation](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/class)\n",
255+
"There's more intformation in the [class keyword reference in the official documentation](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/class?WT.mc_id=visualstudio-twitch-jefritz)\n",
256256
"\n",
257257
"## Constructors\n",
258258
"\n",
@@ -443,7 +443,7 @@
443443
"\n",
444444
"## Properties\n",
445445
"\n",
446-
"We've already seen some properties, [_auto-implemented_ properties](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties) in our `Student` class. These declarations of a type with an access modifier and `{ get; set; }` means that these are properties that can be read and written to in our class. Besides `public`, properties can be declared with `private`, `internal`, `protected`, and `protected internal` scope. We already know what `private` and `internal` are, but `protected` and `protected internal` grant access to the property to classes that **inherit** from this class. We'll learn more about inheritance in a future lesson.\n",
446+
"We've already seen some properties, [_auto-implemented_ properties](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties?WT.mc_id=visualstudio-twitch-jefritz) in our `Student` class. These declarations of a type with an access modifier and `{ get; set; }` means that these are properties that can be read and written to in our class. Besides `public`, properties can be declared with `private`, `internal`, `protected`, and `protected internal` scope. We already know what `private` and `internal` are, but `protected` and `protected internal` grant access to the property to classes that **inherit** from this class. We'll learn more about inheritance in a future lesson.\n",
447447
"\n",
448448
"The Properties are able to be assigned to _INSIDE_ our class by using `this.PROPERTYNAME = value` notation. We're able to read and write the property value with similar notation as noted in the previous samples.\n",
449449
"\n",
@@ -590,7 +590,7 @@
590590
"source": [
591591
"### Expression Body Definitions for Properties\n",
592592
"\n",
593-
"You will see folks refer to the `=>` operator as the **fat-arrow** operator and C# folks will read this operator as \"such that\" with an expression on the right side with some code to be executed when interacting with the property. This [expression body definition](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/properties#expression-body-definitions) allows for a very terse expression of what to do when interacting with the property.\n",
593+
"You will see folks refer to the `=>` operator as the **fat-arrow** operator and C# folks will read this operator as \"such that\" with an expression on the right side with some code to be executed when interacting with the property. This [expression body definition](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/properties?WT.mc_id=visualstudio-twitch-jefritz#expression-body-definitions) allows for a very terse expression of what to do when interacting with the property.\n",
594594
"\n",
595595
"We can use these expression body definitions for `get`, `set` and the property itself. Take a look at the following sample code:"
596596
]
@@ -780,7 +780,7 @@
780780
"\n",
781781
"Constants are values that are defined at compile time and do not change for the life of the application. The `const` keyword declares the constant with access modifiers and variable type. From outside the class, you can then access the constant value using the name of the class and only the constant name from inside the class. \n",
782782
"\n",
783-
"More details about [constants](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/constants) are available in the official documentation."
783+
"More details about [constants](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/constants?WT.mc_id=visualstudio-twitch-jefritz) are available in the official documentation."
784784
]
785785
},
786786
{

notebooks/0103-MethodsEvents.ipynb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
" Previously in Session 2, we wrote constructors to allow you to control the creation of classes. These are _methods_ but this time we will expand on what we've previously learned\n",
1515
"</div>\n",
1616
"\n",
17-
"[Methods are defined in the official documentation](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/methods) as a code block containing a series of statements that the program can execute. We're going to expand on that definition to also state that a method can (but is not required) return values to its caller. We typically think of methods as an action that our class _performs_ or an _acting on_ the class.\n",
17+
"[Methods are defined in the official documentation](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/methods?WT.mc_id=visualstudio-twitch-jefritz) as a code block containing a series of statements that the program can execute. We're going to expand on that definition to also state that a method can (but is not required) return values to its caller. We typically think of methods as an action that our class _performs_ or an _acting on_ the class.\n",
1818
"\n",
1919
"A method has a **signature** that defines how you can interact with it. The signature is followed immediately by curly braces **{ }** that wrap the code to be executed in the method and takes the following format:\n",
2020
"\n",
@@ -725,7 +725,7 @@
725725
"source": [
726726
"## Delegates\n",
727727
"\n",
728-
"Now that we know what a method is and how to interact with them, sometimes we want to pass a pointer to that method around our program. This pointer to the method is called a **Delegate** and allows us to call the method from another ___location. Delegates are defined with the method signature that they need to match in order to reference that method. The [official documentation on delegates](https://docs.microsoft.com/dotnet/csharp/programming-guide/delegates/) has more on defining a delegate.\n",
728+
"Now that we know what a method is and how to interact with them, sometimes we want to pass a pointer to that method around our program. This pointer to the method is called a **Delegate** and allows us to call the method from another ___location. Delegates are defined with the method signature that they need to match in order to reference that method. The [official documentation on delegates](https://docs.microsoft.com/dotnet/csharp/programming-guide/delegates?WT.mc_id=visualstudio-twitch-jefritz) has more on defining a delegate.\n",
729729
"\n",
730730
"Delegates are sometimes referred to as **Callback Functions**\n",
731731
"\n",
@@ -846,7 +846,7 @@
846846
"source": [
847847
"### Multicast delegates\n",
848848
"\n",
849-
"Defined delegate types can be [**multicast**](https://docs.microsoft.com/dotnet/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates) allowing them to point to multiple methods to be called. This sounds a LITTLE weird, but it means that we can stack executions and pass that entire stack into another method. Let's take a look at that `Student` and `CalculateHandler` from our previous example again."
849+
"Defined delegate types can be [**multicast**](https://docs.microsoft.com/dotnet/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates?WT.mc_id=visualstudio-twitch-jefritz) allowing them to point to multiple methods to be called. This sounds a LITTLE weird, but it means that we can stack executions and pass that entire stack into another method. Let's take a look at that `Student` and `CalculateHandler` from our previous example again."
850850
]
851851
},
852852
{
@@ -984,7 +984,7 @@
984984
"source": [
985985
"## Events\n",
986986
"\n",
987-
"[Events](https://docs.microsoft.com/dotnet/csharp/programming-guide/events/) allow us to notify when something has happened inside of our class. Events build on the concept of delegates as they reference another method that should be called when the event is **raised**. We define an event with access modifiers and by .NET standard practice, two arguments: \n",
987+
"[Events](https://docs.microsoft.com/dotnet/csharp/programming-guide/events?WT.mc_id=visualstudio-twitch-jefritz) allow us to notify when something has happened inside of our class. Events build on the concept of delegates as they reference another method that should be called when the event is **raised**. We define an event with access modifiers and by .NET standard practice, two arguments: \n",
988988
"\n",
989989
"- the sender \n",
990990
"- a class that contains any arguments about the event being raised. \n",
@@ -1041,7 +1041,7 @@
10411041
"source": [
10421042
"### Generic EventHandler definition\n",
10431043
"\n",
1044-
"Insted of writing your own delegate for each event, [you can use a generic `EventHandler<T>`](https://docs.microsoft.com/dotnet/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines#example) and specify the type of the `EventArgs` that you would like the Event to return."
1044+
"Insted of writing your own delegate for each event, [you can use a generic `EventHandler<T>`](https://docs.microsoft.com/dotnet/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines?WT.mc_id=visualstudio-twitch-jefritz#example) and specify the type of the `EventArgs` that you would like the Event to return."
10451045
]
10461046
},
10471047
{
@@ -1086,7 +1086,7 @@
10861086
"source": [
10871087
"## Partial Keyword\n",
10881088
"\n",
1089-
"Classes can be defined across multiple files in separate class code blocks and then stitched together as a single class object. This type of file layout and class design helps facilitate generating a class from metadata and allowing customization of that class in a second or third file. You can use the [`partial` keyword to define each of the parts of the class](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods).\n",
1089+
"Classes can be defined across multiple files in separate class code blocks and then stitched together as a single class object. This type of file layout and class design helps facilitate generating a class from metadata and allowing customization of that class in a second or third file. You can use the [`partial` keyword to define each of the parts of the class](https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods?WT.mc_id=visualstudio-twitch-jefritz).\n",
10901090
"\n",
10911091
"Check out the use of the `partial` keyword to define two partial `Teacher` classes and even a **partial method** called `GetAge` that is defined in one part and executed from the other. Try removing the implementation of `GetAge` from the second class and see how the `DisplayAge` reflects this."
10921092
]
@@ -1157,7 +1157,7 @@
11571157
"source": [
11581158
"## Enumerations\n",
11591159
"\n",
1160-
"An [enumeration type](https://docs.microsoft.com/dotnet/csharp/language-reference/builtin-types/enum) is a value type that can be used to describe a collection of related named constants that actually reference an integral type. We use the `enum` keyword to define these types with an access modifier and the name of the type. Values are then listed, separated by commas inside the enum block.\n",
1160+
"An [enumeration type](https://docs.microsoft.com/dotnet/csharp/language-reference/builtin-types/enum?WT.mc_id=visualstudio-twitch-jefritz) is a value type that can be used to describe a collection of related named constants that actually reference an integral type. We use the `enum` keyword to define these types with an access modifier and the name of the type. Values are then listed, separated by commas inside the enum block.\n",
11611161
"\n",
11621162
"By default, underlying values start with the value `0` and increment by `1`. Let's take a look at an example that describes the values of a dimmer lightswitch:"
11631163
]
@@ -1257,7 +1257,7 @@
12571257
"\n",
12581258
"Enums can also be used with bitwise operations so that you can store and pass along any number of values stored in one variable. Use the `[Flags]` attribute to instruct the C# compiler to enable this feature and set explicit binary values for the enum constants. You can use both integer values or binary values in your definitions.\n",
12591259
"\n",
1260-
"Then, you can store multiple values by using the bitwise OR operator `|` and can interact with those values [using other bitwise operators](https://docs.microsoft.com/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#enumeration-logical-operators)."
1260+
"Then, you can store multiple values by using the bitwise OR operator `|` and can interact with those values [using other bitwise operators](https://docs.microsoft.com/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#enumeration-logical-operators?WT.mc_id=visualstudio-twitch-jefritz)."
12611261
]
12621262
},
12631263
{

0 commit comments

Comments
 (0)