Paweł Łukaszuk
Tips, tricks and quirks in .NET
#1about 2 minutes
The surprising internal structure of generic lists
The generic `List<T>` in .NET is not a linked list but is implemented as a resizable array, which has important performance implications.
#2about 4 minutes
Comparing the performance of for and foreach loops
While `for` loops were historically faster, optimizations in .NET 7 have made `foreach` performance nearly identical due to reduced enumerator overhead.
#3about 4 minutes
Why `Where().Count()` is faster than `Count(predicate)`
Using `Count()` with a predicate is significantly slower than chaining `Where()` and `Count()` because it results in a virtual method call instead of an instance method call.
#4about 4 minutes
When not to use `StringBuilder` for concatenation
`StringBuilder` is not always the fastest option for joining strings; for a small number of short strings, simple concatenation with `+` can be more performant due to `StringBuilder`'s resizing overhead.
#5about 3 minutes
The difference between `string.Empty` and an empty literal
Despite generating different IL code, `string.Empty` and the `""` literal compile to identical assembly instructions and have the same performance, with the only difference being compile-time usage constraints.
#6about 5 minutes
Safer null checking and the risk of operator overloading
Using the `==` operator for null checks is unsafe because it can be overloaded; the `is null` pattern should be used instead to avoid unexpected behavior.
#7about 4 minutes
How to terminate an application instantly
The `Environment.FailFast` method immediately terminates an application without executing `catch` or `finally` blocks, making it a drastic way to handle catastrophic failures.
#8about 4 minutes
Understanding the default banker's rounding in .NET
The `Math.Round` method in .NET uses banker's rounding by default, which rounds values ending in .5 to the nearest even integer, a behavior that can be surprising.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
17:41 MIN
Presenting live web scraping demos at a developer conference
Tech with Tim at WeAreDevelopers World Congress 2024
25:07 MIN
Q&A on performance, interfaces, and advanced learning
Where we're going we don't need JavaScript - Programming with Type Annotations
26:55 MIN
Q&A on performance, tooling, and alternatives
Discover .NET MAUI
00:04 MIN
Overview of modern C# community-loved features
Modern C#: A Dive into the Community's Most Loved new Features.
25:21 MIN
Practical developer tips for automation and presentation
WeAreDevelopers LIVE – AI vs the Web & AI in Browsers
10:26 MIN
Practical initiatives to engage and retain developers
Developer Advocacy in accelerated times
09:55 MIN
Debunking the myth of not being technical enough
From Gazelle to Pride Leader: The Path to Public Speaking in Tech
22:21 MIN
Q&A: SynchronizationContext, tooling, and challenges
Asynchronicity and multithreading in C#
Featured Partners
Related Videos
Hacking C# from the inside - how to do anything in NET
Adam Furmanek
Catching up on the basics you don't really need that much code
Chris Heilmann
Exploring the Latest Features of .NET and C# by Building a Game
Rainer Stropek
C# 13 Unleashed: Live Demos of my Top 10 Cutting-Edge Features!
Ambesh Singh & Sachin Kumar
Programming secure C#/.NET Applications: Dos & Don'ts
Sebastian Leuer
C++ Features You Might Not Know
Jonathan Müller
Angular tips/tricks you can use from tomorrow on
Benedikt Starzengruber
How Regex Works: The Secret Sauce Behind Pattern Matching
Andrii Raikov
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.


Developer (C# .NET SQL)
Clerkenwell
Charing Cross, United Kingdom
API
.NET
Azure
Microservices
Continuous Integration






