World Congress 2025 Aug 20, 2025 Session details

C# Lowering - What is it and why should I care?

Steven Giesel

A simple C# foreach loop secretly compiles into entirely different structures depending on your data collection. Master compiler lowering to unlock a new tier of performance predictability.

Pause
Mute Enter Fullscreen
#1 about 4 min

Understanding the purpose of compiler lowering in C#

Why developers should understand compiler transformations to analyze performance and debug logic.

#2 about 4 min

Defining compiler lowering versus traditional compiling

How lowering transforms high-level language features into low-level constructs within the same language.

#3 about 1 min

Lowering the var keyword using type interference

How the compiler replaces the implicit var keyword with explicit type declarations.

#4 about 3 min

Evaluating subtle behavior changes in expression statements

How using pre-increment expression statements yields different semantics than standard property getters.

#5 about 2 min

Transforming foreach loops into while loops by the compiler

How a foreach iteration translates into a standard while loop using basic indexers.

#6 about 3 min

Analyzing foreach performance on lists versus arrays

Why iterating over lists generates state machines compared to cost-effective indexer calls for arrays.

#7 about 3 min

Diagnosing silent bugs in disposable asynchronous tasks

Why failing to await asynchronous tasks causes finally blocks to execute and incorrectly dispose resources early.

#8 about 3 min

Unpacking the yield keyword into custom state machines

How yielding elements constructs an enumerator class handling sequence position and traversal dynamically.

#9 about 6 min

Benchmarking yield iterations against prepopulated lists

Balancing memory allocation overhead in prepopulated lists against CPU cycle costs for yield iterations.

Matching moments

3:32 min

Clarifying best practice patterns during structural syntax tool discussions

Jens Claes · World Congress 2023

1:55 min

Introduction to systems programming and performance in .NET

Szymon Kulec Szymon Kulec · World Congress 2026 Europe

4:22 min

Managing compilation performance and implementation specifics of advanced typing

Peter Kröner Peter Kröner · World Congress 2022

2:50 min

Dispelling common optimization and runtime performance misconceptions

Bjarne Stroustrup · World Congress 2022

2:00 min

Understanding core browser technologies and framework syntax sugar

Sasha Shynkevich · LIVE

2:07 min

Understanding JIT compilation and breakpoint de-optimization

Johannes Bechberger · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

September 25, 2026 · 09:40–10:10

Stage 3

Still on 4.8 or lower? A Practical Guide to Moving Your "Un-Migratable" .NET Apps

Isaac Levin

Developer Advocate

Isaac Levin
Open session

World Congress 2026 North America

September 24, 2026 · 16:10–16:40

Outdoor Stage

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

September 24, 2026 · 14:50–15:20

Stage 9

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

September 24, 2026 · 14:10–14:40

Stage 1

Anatomy of an AI Request: Where Latency and Cost Are Really Born

Dan Fu

VP of Kernels at Together AI

Dan Fu
Open session

World Congress 2026 North America

September 25, 2026 · 16:00–16:10

Outdoor Stage

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala
Open session

World Congress 2026 North America

September 23, 2026 · 15:40–16:10

Stage 2

Lean Intelligence: Lessons from GitHub Copilot Data Science Efforts

Rahul Pandita

Researcher and Technical Advisor at Microsoft

Rahul Pandita