Examples (in C#) for design patterns