Advanced C#

Course Outline Outline
Reading Material
PowerPoint Slides Intro.pptx
DayModulesSharing
1
  • Information Hiding
  • OOP
  • More advance C# features
Materials:
2
  • Overview of Attributes
  • Defining Custom Attributes
  • Retrieving Attribute Values
Materials:
  • Comparing a Static Method with an Instance Method
  • Single Cast Delegates
  • Multicast Delegates
  • Variance in Delegates
Materials: References: Videos:
3
  • Creating Custom Events
  • Passing Data to an Event Argument
  • Using Event Accessors
  • Handling Interface Events
  • Handling Explicit Interface Events
Material: References: Videos:
  • The Usefulness of Lambda Expressions
  • Lambda Expression with (and Without) Parameters
  • Types of Lambda Expressions
  • Expression-Bodied Members
  • Local Variables in a Lambda Expression
  • Using Tuples in a Lambda Expression
  • Event Subscription with Lambda Expressions
References: Videos:
  • The Motivation Behind Generics
  • A Quick Look into the List Class
  • Generic Delegates
  • Predicate Delegate
  • The Default Keyword in Generics
  • Implementing Generic Interface
  • Generic Constraints
  • Using Covariance and Contravariance
  • Covariance with Generic Delegate
  • Covariance with Generic Interfaces
  • Contravariance with Generic Delegates
  • Contravariance with Generic Interface
  • Self-Referencing Generic Types
References: Videos:
4
  • C# Features That Support LINQ
  • Query Syntax and Method Syntax in LINQ
  • Basic LINQ Query Operations
  • Data Transformations with LINQ
Materials: References: Videos:
5
  • Foundations in Thread Programming
  • Coding Multithreaded Programs in C#
  • Using the ThreadStart Delegate
  • Using the ParameterizedThreadStart Delegate
  • Foreground Thread vs. Background Thread
  • Thread Safety
  • An Alternative Approach Using the Monitor Class
  • Deadlock
Materials: Reference: Videos:
  • Using a Synchronous Approach
  • Using Thread Class
  • Using the ThreadPool Class
  • Using Lambda Expressions with ThreadPool
  • Using the IAsyncResult Pattern
  • Using an Event-based Asynchronous Pattern (EAP)
  • Understanding Tasks
  • Using a Task-based Asynchronous Pattern (TAP)
  • Asynchronous Programming with Async / Await
References: Videos:
  • Reflecting on Objects
  • Adding Assembly Metadata
  • Emitting Objects by Using Builder Classes
Materials: References: Videos:

Recommanded Books
TitleGetting Started with Advanced C#: Upgrade Your Programming Skills
ISBN978-1-48-425934-4
AuthorVaskaran Sarcar
Year2020
Publisher Apress
TitleC# 12 in a Nutshell: The Definitive Reference
ISBN978-1-098-14744-0
AuthorJoseph Albahari
Year2023
Publisher O'Reilly Media
TitleC# Concurrency: Asynchronous and multithreaded programming
ISBN978-1-633-43865-1
AuthorNir Dobovizki
Year2025
Publisher Manning
TitleParallel Programming and Concurrency with C# 10 and .NET
ISBN978-1-803-24367-2
AuthorAlvin Ashcraft
Year2022
Publisher Packt Publishing
TitleMetaprogramming in .NET
ISBN978-1-617-29026-8
AuthorKevin Hazzard, Jason Bock
Year2013
Publisher Manning Publications
TitleMetaprogramming in C#: Automate your .NET development and simplify overcomplicated code
ISBN978-1-837-63542-9
AuthorEinar Ingebrigtsen
Year2023
Publisher Packt Publishing Pvt Ltd
TitleC# 13 Programming Essentials: .NET 9 Edition: Learn C# and .Net 9 Programming using Visual Studio Code
ISBN978-1-965-76401-5
AuthorNeil Smyth
Year2024
Publisher Payload Publishing
TitleAsync in C# 5.0
ISBN978-1-449-33716-2
AuthorAlex Davies
Year2012
Publisher O'Reilly Media