Formerly titled "C# Fundamentals - Part 1," this course is designed to give C++ and Java developers an accelerated introduction to C# on the .NET platform. For a beginner-level introduction to C#, refer to "C# Fundamentals with C# 5.0."
C# is Microsoft's entry into the world of managed programming. Using a syntax that is deliberately reminiscent of Java, C++ and C, C# achieves a natural tradeoff of terseness and clarity, enabling programmers to express concepts in a clear and maintainable form. Note - this course was originally titled "C# Fundamentals - Part 1", but has been renamed to more accurately reflect the target audience and content of this course. The course content itself has not been changed since its original publication. For a beginner-level introduction to C#, watch "C# Fundamentals with C# 5.0."
Scott has over 15 years of experience in commercial software
development and is a frequent speaker at national conferences,
and local user groups. Scott is a Microsoft MVP and has authored
books on several Microsoft technologies, including ASP.NET, C#,
and Windows Workflow.
An Introduction to C# Hi, this is Scott Allen of Pluralsight. And this module was an introduction to C#. This is the first module in a series of modules that will guide you through with the C# language and give you everything you need to know to be an effective and productive C# developer. In this first module, we're going to spend a little bit of time describing the environment that you work inside of. We'll define what exactly the. NET Framework is. We'll also talk about the Framework Class Library which is something that you'll be using when you write your C# program. It's all of the APIs and classes that you can use to interact with the file system in the registry in the network. We'll also talk about the Common Language Runtime which is the environment that your C# program will execute inside of. We'll build our first program, a Hello, World! program. And we'll also talk a little bit about the C# syntax and start talking about some of the expressions and operators that you use inside of a program. We'll be using both command line tools to build our programs and we'll also see how to create a project in creating executable with Visual Studio.
Classes and Objects Hi. This is Scott Allen of Pluralsight. And in this module, I want to teach you about classes and objects. We'll be looking at the difference between a class and an object, and talking about some of the specific features that you can add to a class like constructors. We'll also look at some of the features of the C Sharp Programming Language that make it an object-oriented programming language, the ability to use inheritance, the ability to encapsulate state, and the ability of objects to have polymorphic behavior. We'll talk about access modifiers and also look at some of the keywords that you'll be using when you're defining a C Sharp class, with the abstract key word, the static keyword, the sealed keyword, and the partial keyword.
C# - Types Hi this is Scott Allen of Pluralsight and in this module I want to teach you about types and assemblies in C#. In the last module we talked about reference types just a bit. But in this module I want to draw more into the two categories of sites in. NET, value types and reference types and come to a good understanding of the differences between those two. We'll also look at how to define value types using something called an enum and a struct. We'll talk about interfaces which is another way to describe a type in. NET and look at a collection of objects using an array. And then we'll see how all those gets packaged up into assemblies and we'll talk about the importance of assembly references.
C# - Events, Properties, and Methods Hi this is Scott Allen of Pluralsight, and in this module we're going to look at the members that you can attach to a type in the C# programming language. This includes some familiar concepts that we've looked up before like methods and properties. But we're also going to introduce some new pieces. We'll drill into the details and the differences between fields and properties. We'll also look at events. We'll look at providing overloaded versions of the built in C# operators. We'll see how you can use an indexer in a C# and what that does. And we'll also talk a bit about constructors and destructors.
C# - Flow Control and Exceptions Hi, this is Scott Allen of Pluralsight and in this module, we're going to look at Control Flow in a C# application. Specifically, we're going to be looking at the keywords and constructs available in the language to perform branching, to iterate across the collection, to jump to different points in an execution path, and finally, we'll look at error handling. That is how to throw exceptions, how to catch exceptions and how to create new custom exceptions.
C# and the CLR Hi, this is Scott Allen of Pluralsight. And in this module, we're going to look at C# and its relationship with the Common Language Runtime. In the first topic for this module, we will revisit the subject of just-in-time compilation and garbage collection. We'll also be looking at how you can interact with the threads of execution inside of your application. You'll need to do this if you want to have concurrently running tasks, or perhaps perform an asynchronous operation. We'll look at the Reflection API that's available in. NET, and see how we can take advantage of the metadata that is stored in our application. Reflection is an extremely useful feature of. NET. We'll also talk briefly about Processor architecture and how your C# application can run both on a 32 bit CPU and a 64 bit CPU. And we'll conclude the module by looking at how to achieve Interoperability with code that might be written for a different runtime, code that's written in C++ or Visual Basic. And we'll see how they can interop with code that is unmanaged and packaged into a dll or a COM component.
C# and Generics Hi, this is Scott Allen of Pluralsight. And in this module, we're going to look at generics in the C# language. Generics were a feature that were added in version 2 of the C# that was released with. NET 2. 0 and Visual Studio 2005. Let's start off this module by looking at the problem that generics are designed to solve and then talk about writing generic classes, generic methods, generic interfaces. We'll also see how to apply generic constraints which allow you to write more specific algorithms when you're writing generic classes. We'll also touch on other topics like covariance and contravariance with generics.