A ValueObject implementation with CSharp