public enum Test { Yes, No }
我有这两个switch
的表达方式.下面的一个给出了CS8509警告:
Test? test = null;
var result = test switch
{
null => "Null",
Test.Yes => "Yes",
Test.No => "No",
};
但将null
个 case 移到最后可以解决这个问题.有人知道为什么会发生这种事吗?这肯定是个窃听器,对吧?
Test? test = null;
var result = test switch
{
Test.Yes => "Yes",
Test.No => "No",
null => "Null",
};
项目设置:
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>10.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>8524</NoWarn>
</PropertyGroup>