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
40:25 MIN
Q&A on production code analysis and performance bottlenecks
Data Science on Software Data
39:23 MIN
Q&A on developer tooling and testing best practices
Data Mining Accessibility
00:04 MIN
Overview of modern C# community-loved features
Modern C#: A Dive into the Community's Most Loved new Features.
43:31 MIN
Q&A on Blazor development and the speaker's journey
Blazing Accessibility Basics
00:14 MIN
Introduction to five key features in C# 10
5 features that help you get the most out of C# 10
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
Don’t shoot yourself in the foot.
Karol Rogowski
Related Articles
View all articles



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






Full Stack Software Engineer (.Net/C#)
Finanz Informatik GmbH & Co. KG
GIT
HTML
Vaadin
TypeScript
Continuous Delivery
+1


