ReSharper 2024.1 Help

Code inspection: Some values of the enum are not processed inside 'switch' expression and are handled via exception in default arm

When using a switch expression with an enum, it is not required to have arms for each enum value — these values will be processed in the _ discard.

This might be intended by the author to handle some unimportant values. But if the _ discard throws an exception, all usages of the switch with non-processed enum values will also throw the exception, which is probably a consequence of adding a new value to the enum and forgetting to update the switch accordingly.

enum MyColor { Red, Green, Blue } string GetColor(MyColor color) => color switch { MyColor.Red => "Red", MyColor.Green => "Green", _ => throw new ArgumentOutOfRangeException(nameof(color)) }; // The value 'Blue' is not processed in the switch // so this call will throw an exception string TestColors => GetColor(MyColor.Blue);
Last modified: 11 February 2024