ExhaustiveSwitchAnalyzer 0.1.0
dotnet add package ExhaustiveSwitchAnalyzer --version 0.1.0
NuGet\Install-Package ExhaustiveSwitchAnalyzer -Version 0.1.0
<PackageReference Include="ExhaustiveSwitchAnalyzer" Version="0.1.0" />
<PackageVersion Include="ExhaustiveSwitchAnalyzer" Version="0.1.0" />
<PackageReference Include="ExhaustiveSwitchAnalyzer" />
paket add ExhaustiveSwitchAnalyzer --version 0.1.0
#r "nuget: ExhaustiveSwitchAnalyzer, 0.1.0"
#:package ExhaustiveSwitchAnalyzer@0.1.0
#addin nuget:?package=ExhaustiveSwitchAnalyzer&version=0.1.0
#tool nuget:?package=ExhaustiveSwitchAnalyzer&version=0.1.0
ExhaustiveSwitchAnalyzer
Ensures all switch branches for specific enums are taken.
Installation
This analyzer comes with some library code as well (like the annotation RequireExhaustiveSwitch
), so you have to reference it as a usual dependency (do not use PrivateAssets=all
)
<ItemGroup>
<PackageReference Include="ExhaustiveSwitchAnalyzer" Version="0.1.0"/>
</ItemGroup>
However, the analyzer deliberately does not check that this attribute is exactly the one provided, so you are free to define your own and use it, while referencing the analyzer package with private assets.
Usage
using ExhaustiveSwitch.Attributes;
[RequireExhaustiveSwitch]
public enum Color
{
Red,
Green,
Blue,
}
public enum Size
{
Small,
Medium,
Large,
}
public int Example(Color color, [RequireExhaustiveSwitch] Size size)
{
switch (color) // ESA001: Switch statement on enum 'Color' is missing cases for: Blue
{
case Color.Red:
Console.WriteLine("Red");
break;
case Color.Green:
Console.WriteLine("Green");
break;
default:
Console.WriteLine("Unknown Color");
break;
}
return size switch // ESA001: Switch statement on enum 'Size' is missing cases for: Medium
{
Size.Small => 1,
Size.Large => 3,
_ => throw new ArgumentOutOfRangeException(nameof(size), size, null)
};
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.1.0 | 12 | 7/27/2025 |
Initial Version of Switch Analyzer capable of checking if all enum values are mentioned in switch statement or expression.