c# switch case when type