
C# provides different function types to fit a variety of real-world development scenarios. In this course, Joe Marini explores three important features of C#: Delegates, events, and lambdas. First, Joe shows how delegates are used to provide interchangeable functions during the lifetime of a program, which makes it easy to modify the functionality of an app on the fly. He then covers events, which are used to handle messages from both within and outside the program and can be turned on and off dynamically. Finally, he shows how lambdas provide a concise, efficient way of writing simple expressions without having all the associated syntax of a full function. These features help keep C# code readable, efficient, and maintainable, so join Joe to learn how to adapt this flexible set of programming tools to your own C# programming needs.
Topics include:

Are you looking for ways to level up your C# coding? In this course, programming expert Joe Marini guides you through how to use interfaces and generics in C#. Joe explains that interfaces and generics both are used to construct flexible classes. He walks you through how to define and implement an interface, how to use an interface when casting one C# class to another type, how to implement more than one interface for a C# class, and more. Joe describes how interfaces keep your code nimble, compact, and efficient, while generics are used to create code that is more maintainable and easier to read. Joe shows you how to use C# list generics to create type-save lists of objects. He also covers how to use the generic versions of the queue and stack data structures, as well as how to use the generic versions of the queue and stack data structures. Interfaces and generics make your C# projects easier to build and scale, with fewer bugs and performance issues along the way.
Topics include:

Discover how to improve the scalability and performance of your applications using asynchronous programming in C#. In this course, join Anton Delsink as he explores different options for parallelizing your code, and shows how asynchronous programming is done with C#. Anton covers key concepts, including unit tests, delegates, lambdas, and anonymous methods. He also covers multithreading, async keywords, tasks, and more.
Topics include:
- What is asynchronous?
- Delegates
- Blocking vs. nonblocking I/O
- Async database queries with begin/end
- Windows Forms BackgroundWorker
- Threads
- Async networking with Tasks
- Async database queries with Tasks
- C# keywords async and await
Deze cursus is enkel beschikbaar in het Engels. Als dit voor u geen probleem vormt, dien dan gerust uw aanvraag in.
This course is in French only. If this is not a problem for you, by all means go ahead and apply.

Get into the habit of developing reliable, readable, and sustainable application code by following coding standards with C#. In this course, join instructor Reynald Adolphe as he shows how to go beyond the language syntax and master best practices that can help you produce high-quality C# code. Throughout the course, Reynald shares some of his favorite best practices, illustrating precisely when and where to use each one. Learn about right way to use constructors, manage objects, implement often ignored advantages of getters and setters. Plus, explore best practice resources, including those for essential design patterns.
Topics include:
- Naming and handling classes
- Running a unit test
- Using constructors
- Naming and handling methods, fields, and properties
- Using properties correctly
- Managing objects efficiently
- Common design patterns as best practices
Deze cursus is enkel beschikbaar in het Engels. Als dit voor u geen probleem vormt, dien dan gerust uw aanvraag in.
This course is in French only. If this is not a problem for you, by all means go ahead and apply.

Algorithms are one of the fundamental pillars in every software application, and once you understand them, you can create more efficient and maintainable programs. In this course, instructor Kathryn Hodge shows you how to create better C# programs by using efficient algorithms. Kathryn discusses what makes an algorithm effective, as well as how to make informed assumptions about your data to create better algorithms. She focuses on how to create efficient algorithms to work with different types of data, including strings, arrays, linked lists, queues, stacks, hash-based structures, and trees. Many algorithms are built into the C# language, and Kathryn covers how to use these to create your own custom algorithms, so you can work with your data exactly the way you want. She also dives into how to leverage different data structures to create better algorithms in analyzing or manipulating their data.
Topics include:

Successful programmers know more than just how to code. They also know how to think about solving problems. Code Clinic is a series of courses in which our instructors solve the same problems using different programming languages. In each course, instructors provide tips and tricks for working in a particular language and help you grasp why you might want to learn one language over another. Here, Anton Delsink works with C#. Throughout the course, Anton introduces challenges and then provides an overview of his solutions in C#. Challenges include topics such as geolocation, face recognition, and accessing peripherals. Visit other courses in the series to see how to solve the same challenges in languages like C++, JavaScript, PHP, Python, Ruby, Go, and Swift.
Topics include:
Deze cursus is enkel beschikbaar in het Engels. Als dit voor u geen probleem vormt, dien dan gerust uw aanvraag in.
This course is in French only. If this is not a problem for you, by all means go ahead and apply.

Design patterns in C# can save you a lot of time, as you don’t have to recreate code that has already been proven. In this course, instructor Richard Goforth explains what design patterns are and how you can recognize and implement five C# patterns: Observer, Builder, Command, Proxy, and Chain of Responsibility. For each pattern, Richard gives a definition, at least one example of how to implement or use it, any other explanations you may need, and a practice challenge. He concludes with some suggestions on where to continue your education in C# application design with patterns.
Topics include:

Design patterns are an important part of programming. Rather than programming solutions to every issue from scratch, developers can implement these patterns that solve common problems. In this course, instructor Richard Goforth explains the purpose and effective use of key design patterns in C#. Richard begins by discussing why design patterns make sense, what they are, and how they are grouped and categorized. He then provides an overview of the creational, behavioral, and structural Gang of Four design patterns and how they are applied in C# and .NET. Next, he takes a deeper dive into the Iterator, Factory Method, and Adapter patterns, providing hands-on challenges that help you master the application of these patterns in your own code.
Topics include:

As one of the most popular programming languages, C# continues to make programming easier and more fun with each new version. In this course, instructor Matt Milner digs deeper into essential features of C#, such as generic types, collections, handling exceptions, asynchronous programming with tasks, and more. Matt begins with helping you understand and work with generic types, then moves on to understanding collection types, working with collections, and understanding concurrent collections. He walks you through handling different types of exceptions, including creating custom exceptions. Matt explains threading basics and shows you how to use async and await in the task based programming model. After covering delegates and events, he goes over the case for extension methods, as well as how to write and use an extension method. Plus, Matt discusses the goals of Language Integrated Query (LINQ), how to query collections with LINQ, and how to filter and order your queries.
Topics include:

Do you need to learn the essentials of C#? This two-part series shows you through all the basics. In this course, part one of the series, instructor Matt Milner shows you classes, structs, variables, and much more. Matt begins by placing C# in context with .NET, MSIL, and the Base Class Library. He walks you through understanding and working with classes, structs, and records. Then Matt shows you several useful techniques to organize your C# code. He discusses variables in-depth, then dives into how to define, enable, and test enums, as well as how to use nullable types and work with null objects. Matt goes over if, else, and switch statements and covers switch expressions, the is expression, and an introduction to patterns. Plus, he explains several types of patterns and describes how to use guard conditions to further refine your switch case matches.
Topics include:

C# is Microsoft's primary programming language and developers working with Microsoft tools need to know it. Whether you are new to programming or new to the Microsoft ecosystem, this learning path gives you a foundation for developing applications using Visual Studio and other key Microsoft tools. Understand the fundamentals of the C# programming language. Build the foundational knowledge to create C# applications. Gain the skills to interview for a C# developer position.
Deze cursus is enkel beschikbaar in het Engels. Als dit voor u geen probleem vormt, dien dan gerust uw aanvraag in.
This course is in French only. If this is not a problem for you, by all means go ahead and apply.

Applying for C# programming jobs? Learn the programming and non-technical skills needed to land a C# developer position in this course with software developer Kathryn Hodge. Kathryn begins with some software development interview basics that will describe what the interview process is like. Then, Kathryn dives deeper into some questions and topics that relate specifically to the C# programming language. In addition to general C# questions, many software development interviews require a whiteboard coding portion. The rest of the course is devoted to reviewing string manipulation, data structures, and object-oriented concepts that are often used in the solutions to these questions. Each data structure is reviewed and followed by a practice coding question and solution, so you can test your knowledge as you go along.