Thursday 

Room 1 

09:00 - 10:00 

(UTC+02

Talk (60 min)

Pattern-based C#: if it quacks like a duck…

C# is a strongly typed programming language, to communicate expectations in a statically verifiable fashion across the .NET ecosystem. For example features such as LINQ require the type-in-use to implement a certain interface (e.g., the generic IEnumerable interface).

.NET
Programming Languages

Well, there is the dynamic keyword, but this is used quite rarely because it circumvents the type safety and has a measurable performance impact.

However, there is a set of features that the compiler allows you to safely enable on types by satisfying a particular shape, rather than through inheritance and implementation.

Features like:
- use any type within foreach statements
- apply the await operator to any type
- tuple-like deconstruction of internal and external types
- implicit Index and Range support
- collection initializers and expressions for user-defined types
and more.

Join our live coding session for a deep dive into the patterns recognized by the Roslyn compiler to learn how to augment reusable types for most convenient and idiomatic consumption in libraries and applications alike.
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.

Stefan Pölz

Stefan's passion is to practice Clean Code and test-driven development in order to build maintainable high-performance software in an ever-evolving team, supported by tools from the .NET Ecosystem. He loves to attend and speak at public developer events, co-organize local community gatherings, stream live programming sessions, and author open source projects, complementing his expertise in professional software development. As Microsoft MVP (Developer Technologies), JetBrains Community Contributor (.NET) and co-organizer of DotNetDevs.at, it's his ambition to share knowledge about everything C#.

Eva Ditzelmüller

I’m a Software Engineer in Test with a passion for both quality and development. After years in QA, I embraced the world of software engineering and have fully immersed myself in the .NET ecosystem.

Currently, I’m expanding my skills at Radancy, where I combine my my testing background with development, automating complex workflows and creating reliable, high-performance software. It’s not just about writing code — it’s about problem-solving, collaboration, and growing alongside a community of passionate developers.

Let’s connect and share ideas!