如何解决 switch 语句中的 'Use not null pattern...' 建议
How to resolve 'Use not null pattern...' suggestion in switch statement
在Visual Studio2019年,尝试使用c#的一些新特性,特别是switch语句的新特性。
我想打开一个对象的类型,我已经看到了几种实现此目的的方法,我正在使用这种方法:
private string MyFunc (Employee q)
....
Type qt = q.GetType();
switch (qt)
{
case Type _ when qt == typeof(HumanResources):
//some code
break;
case Type _ when qt == typeof(Sales):
//some code
break;
.....
default:
break;
};
.....
}
我已经更改了 class 名称,显然我没有显示所有代码。但是 case Type 的波浪线如下 suggestion/comment:
我想实施该建议,但不知道如何实施。如有任何帮助,我们将不胜感激。
我在 VS2022 中没有遇到 warning/error/suggestion。
也就是说,我建议您更恰当地使用 switch
语句:
private string MyFunc(Employee q)
{
switch (q)
{
case HumanResources:
//some code
break;
case Sales:
//some code
break;
default:
break;
};
return null;
}
因此,您不是针对 Type
元数据进行操作,而是针对实例本身进行操作。这省去了对 when
运算符的任何需求,代码对我来说更具可读性。
不要打开变量的 type,打开变量本身并根据类型使用 pattern matching 到 select 正确的大小写。
private string MyFunc (Employee q)
{
switch (q)
{
case HumanResources hr:
// some code
break;
case Sales s:
// some code
break;
// ...
}
// ...
}
在这种情况下,您不需要添加变量名(hr
、s
),它就在那里,以防您需要访问特定类型的变量。
在Visual Studio2019年,尝试使用c#的一些新特性,特别是switch语句的新特性。
我想打开一个对象的类型,我已经看到了几种实现此目的的方法,我正在使用这种方法:
private string MyFunc (Employee q)
....
Type qt = q.GetType();
switch (qt)
{
case Type _ when qt == typeof(HumanResources):
//some code
break;
case Type _ when qt == typeof(Sales):
//some code
break;
.....
default:
break;
};
.....
}
我已经更改了 class 名称,显然我没有显示所有代码。但是 case Type 的波浪线如下 suggestion/comment:
我想实施该建议,但不知道如何实施。如有任何帮助,我们将不胜感激。
我在 VS2022 中没有遇到 warning/error/suggestion。
也就是说,我建议您更恰当地使用 switch
语句:
private string MyFunc(Employee q)
{
switch (q)
{
case HumanResources:
//some code
break;
case Sales:
//some code
break;
default:
break;
};
return null;
}
因此,您不是针对 Type
元数据进行操作,而是针对实例本身进行操作。这省去了对 when
运算符的任何需求,代码对我来说更具可读性。
不要打开变量的 type,打开变量本身并根据类型使用 pattern matching 到 select 正确的大小写。
private string MyFunc (Employee q)
{
switch (q)
{
case HumanResources hr:
// some code
break;
case Sales s:
// some code
break;
// ...
}
// ...
}
在这种情况下,您不需要添加变量名(hr
、s
),它就在那里,以防您需要访问特定类型的变量。