-
IEnumerable vs IList compare.
-
Yield return
-
Generics
-
Linq - examples with Where, Select, Any, Take, Skip, First, Single
-
Extension methods
-
Iterators (pattern)
- https://www.youtube.com/watch?v=uNTNEfwYXhI (first half of video, the whole video is way too long)
-
readyonly vs const
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/override
- https://docs.microsoft.com/en-us/dotnet/api/system.object.tostring?view=netframework-4.7.2
- https://stackoverflow.com/questions/41084411/whats-the-difference-between-system-valuetuple-and-system-tuple
- https://ilspy.net/ (Tool for viewing .NET assembly code as it would look in different C# versions & the IL code)
(Threads -> Tasks -> Async/await)
- https://www.youtube.com/watch?v=XXg9g56FS0k (part 1)
- https://www.youtube.com/watch?v=CzgDxdwTJds (part 2)
- IL Viewer (ReSharper tool, ReSharper->Windows->IL Viewer)
- https://app.pluralsight.com/player?course=asynchronous-programming-dotnet-getting-started&author=filip-ekberg&name=asynchronous-programming-dotnet-getting-started-m4&clip=2 (Pluralsight course, https://app.pluralsight.com/library/courses/asynchronous-programming-dotnet-getting-started/table-of-contents, Chapter 04, DEMO: Deadlocking video)
- https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=netframework-4.7.2 ( Task.WhenAll(), Task.ContinueWith(), Task.ContinueWith() )
- https://docs.microsoft.com/en-us/dotnet/api/system.threading.interlocked?view=netframework-4.7.2