You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[Dynamic types](DynamicTypes/Program.cs)| Investigates dynamic types using `dynamic`, `ExpandoObject`, and `Activator.CreateInstance`; compares runtime and compile-time behaviors. Includes extension methods, overload resolution, and dynamic collections. |
96
-
|[Multicast Delegates](MulticastDelegates/Program.cs)| Demonstrates combining multiple methods into a single delegate instance using multicast delegates. Suitable for event handling, callback chaining, and modular invocation patterns. |
97
-
|[DebuggerDisplay](DebuggerDisplay/Program.cs)| Uses `DebuggerDisplay` to customize object visualization in the debugger. Displays a formatted summary during debugging instead of relying on `ToString()`, reducing unnecessary property expansions. |
|[Dynamic types](DynamicTypes/Program.cs)| Investigates dynamic types using `dynamic`, `ExpandoObject`, and `Activator.CreateInstance`; compares runtime and compile-time behaviors. Includes extension methods, overload resolution, and dynamic collections. |
96
+
|[Multicast Delegates](MulticastDelegates/Program.cs)| Demonstrates combining multiple methods into a single delegate instance using multicast delegates. Suitable for event handling, callback chaining, and modular invocation patterns. |
97
+
|[DebuggerDisplay](DebuggerDisplay/Program.cs)| Uses `DebuggerDisplay` to customize object visualization in the debugger. Displays a formatted summary during debugging instead of relying on `ToString()`, reducing unnecessary property expansions. |
98
+
|[ConcurrentCollections](ConcurrentCollections/Program.cs)| Demonstrates how to use .NET's thread-safe collections such as `ConcurrentDictionary`, `ConcurrentBag`, `ConcurrentQueue`, `ConcurrentStack`, and `BlockingCollection` in multi-threaded scenarios. Each collection is optimized for different concurrent data access needs (FIFO, LIFO, producer-consumer, etc.). The code provides simple and observable scenarios using `Parallel.For`, `lock`, and `Console.WriteLine`. |
98
99
99
100
## Notes
100
101
-[Which C# version is included in which framework version?](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version)
0 commit comments