c# - 如果使用字符串值以防万一,那么我们不需要在比较之前转换格式吗?
问题描述
我在一个项目中使用了下面的代码,有人要求我使用ToLower()
orToUpper()
我认为这是不必要的。
public somefun(Classabc clsabc, string emptype, string id)
{
switch(emptype)
{
case :"AnyInput":
{
//do
}
break;
case :"StringInput":
{
//do
}
break;
}
}
if(emptype=="AnyInput")
{
///
}
以上是完美的还是我们需要使用ToLower()
or ToUpper()
with empType
in if()
?我的代码是否存在任何问题或违反编程规则?根据我在case
( switch
) 中的说法,我们使用电子邮件类型作为大小写匹配的常量,如果emptype
值可以用于大小写匹配,那么在字符串匹配之前无需添加额外的函数来转换为大小写。
解决方案
取决于你们在寻找什么。
如果比较区分大小写,您可以像在您提供的示例中那样保留 switch-case 比较。
如果比较不敏感,您可以进行模式匹配(C# 7 及更高版本)并编写如下内容:
switch (true)
{
case bool b when emptype.Equals("AnyInput", StringComparison.InvariantCultureIgnoreCase):
// do
break;
case bool b when emptype.Equals("StringInput", StringComparison.InvariantCultureIgnoreCase):
// do
break;
default:
break;
}
推荐阅读
- javascript - 您如何使用 Apollo Client 有效地批处理 GraphQL 突变?
- c# - OneNote api 失败,代码为 20258。 graphClient.Users[userPrincipalName].Onenote.Pages.Request()
- javascript - JavaScript 代码适用于在 FireFox 中下载 csv,但不适用于 Microsoft Edge
- vim - 如何在 Vim 中对齐(以表格形式)行?
- c# - Outlook 未显示在呼叫者应用程序的顶部
- react-admin - react-admin: SimpleForm in Isolation
- python - 如何避免舍入浮点的python格式化
- pyparsing - 带有 Optional() 子类的 Pyparsing 语法
- python - 两个轴上的 Bbox 故障
- android - developer.android.com 或任何网站的暗模式?