Featured resource
pluralsight tech forecast
2025 Tech Forecast

Which technologies will dominate in 2025? And what skills do you need to keep up?

Check it out
Hamburger Icon

Advanced C#

Course Summary

Explore the power of C# with our Advanced C# course designed for experienced C# developers. Dive deep into the intricacies of data handling, from mastering value vs reference types and memory allocation to working with dynamic and nullable types. Gain proficiency in managing unmanaged resources with the IDisposable pattern and finalizers. Enhance your coding prowess with advanced topics such as delegates, asynchronous programming using TPL, and threading. Explore the power of C# reflection for dynamic typing and late binding, and understand the essentials of encryption. This course is designed to elevate your C# expertise and prepare you for complex, real-world applications.

Prerequisites
In order to succeed in this course, you will need:

  • A strong understanding of C# fundamentals, including object-oriented programming and data structures 
  • Familiarity with Visual Studio

Purpose
Elevate your C# expertise  for working on complex, real-world applications.
Audience
Experieinced C# programmers looking to elevate their expertise.
Role
Software Developers | Data Engineers
Skill level
Advanced
Style
Lectures | Hands-on Activities | Labs
Duration
3 days
Related technologies
Visual Studio | .NET

 

Course objectives
  • Master the use of dynamic typing and nullable types in C#
  • Implement best practices for resource management to avoid memory leaks and ensure efficient cleanup
  • Understand delegates and their use in the .NET libraries
  • Write asynchronous code using the Task Parallel Library and using the async and await keywords
  • Gain a deep understanding of C# reflection, including assembly and type inspection, dynamic typing, and late binding and its practical uses
  • Explore encryption techniques, including symmetric and asymmetric encryption with a focus on implementing SHA256 in C#

What you'll learn:

In this Advanced C# course, you'll learn:

A Closer Look at Data from C# Perspective

  • Value vs reference types
    • Memory allocation and performance
    • Boxing and unboxing
  • Dynamic Types
    • Use cases and examples
    • Performance considerations
  • Nullable types
  • Working with regular expressions
  • Working with unmanaged resources
    • What are unmanaged resources?
    • IDisposable and the dispose pattern
    • Finalizers

Working with Delegates

  • What are delegates?
  • Single-cast delegates
  • Multi-cast delegates
  • Example uses of delegates
  • Understanding .NET event syntax

Asynchronous Coding

  • What is asynchronous coding?
  • .NET tasks vs thread
  • Using Task Parallel Library (TPL)
    • Introducing the TPL
    • Working with tasks
      • Creating and managing tasks
      • Task chaining
      • Waiting for tasks
  • async and await keywords
    • Syntax and usage
    • Writing asynchronous methods
    • Error handling in asynchronous code
  • A quick look at using the thread class
    • Creating and managing threads
    • Synchronizing threads
    • Use cases for threads in the modern era

C# Reflection

  • What is reflection?
  • Assembly and type inspection
  • Uses of reflection
    • Dynamic typing
    • Late binding
    • Accessing private members
  • Examples of reflection

Encryption

  • Quick overview of encryption
  • Types of encryption and their differences
    • Symmetric vs asynchronous encryption
    • Hashing vs digital signatures
  • Exploring SHA256

Dive in and learn more

When transforming your workforce, it’s important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.