Adapter stosowany jest do przekształcania jednego interfejsu w drugi. Dzięki jego kontrukcji można dopasować niekompatybilną klasę i używać jej nadel bez ingerencji w jej budowę.

Załóżmy, że używamy biblioteki z metodą Add, która zwraca sumę przekazanych dwóch parametrów int. Po aktualizacji biblioteki metoda Add przyjmuje parametry float. W takiej sytuacji musielibyśmy zmienić wszędzie parametry. Ale można zastosować w tym miejscu wzorzec Adapter. CalcAdapter wywołuje funkcję Add po dokonaniu niezbędnych zmian (w naszym przykładzie konwersji między typami danych).
public abstract class ITarget { abstract public int Add(int a, int b); } public class CalcAdapter : ITarget { private Calculator calc; public CalcAdapter() { calc = new Calculator(); } public override int Add(int a, int b) { return (int)calc.Add((float)a, (float)b); } } public abstract class INewTarget { abstract public float Add(float a, float b); } class Calculator : INewTarget { public override float Add(float a, float b) { return a + b; } } // poprzednia wersja //Calculator calc = new Calculator(); //calc.Add(10.0, 20.0); // nowa wersja CalcAdapter calcAdapter = new CalcAdapter(); calcAdapter.Add(10, 20);