0 Tage Serie
csharp / expert
Snippet

Generische funktionale Pipeline-Erweiterungen

Experten in C# nutzen häufig Erweiterungsmethoden, um funktionale Muster zu implementieren. Diese 'Pipe'-Methode ermöglicht die lineare Komposition von Funktionen und verwandelt eine verschachtelte Aufrufstruktur in eine lesbare Sequenz, was die Wartbarkeit verbessert und Variablen-Chaos reduziert.

snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
public static class FunctionalExtensions
{
// Maps an input to an output via a delegate
public static TOut Pipe<TIn, TOut>(this TIn input, Func<TIn, TOut> transform)
=> transform(input);
}
// Usage: Chain operations in a readable top-to-bottom flow
var result = "1234"
.Pipe(int.Parse)
.Pipe(n => n * 2)
.Pipe(n => $"Value: {n}");
Erklärung
1
this TIn input, Func<TIn, TOut> transform
Erweitert jeden Typ TIn um eine Methode, die eine Transformationsfunktion akzeptiert, die TOut zurückgibt.
2
.Pipe(int.Parse)
Übergibt den String '1234' direkt an die int.Parse-Methode ohne Zwischenvariablen.