Tighter type constraint - C#