Generic static factories - C#