如何检查许多参数是否为 null 或空字符串? - C#

2023-11-30

我有下面的方法,我需要检查参数是否为空或为空。

    public DB Where(string field, string operat, string value, string andOr, string field2, string operat2, string value2)
    {
        _Where = " WHERE " + field + " " + operat + " @" + field + "1 " + andOr + " " + field2 + " " + operat2 + " @" + field2 + "2 ";
        _Params.Add(field + "1", value);
        _Params.Add(field2 + "2", value2);
        return this;
    }

我找到了 string.IsNullOrWhiteSpace 方法,但这需要这么多代码:

                   if (string.IsNullOrWhiteSpace(field))
            throw new ArgumentException("field Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(operat))
            throw new ArgumentException("operat Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(value))
            throw new ArgumentException("value Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(andOr))
            throw new ArgumentException("andOr Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(field2))
            throw new ArgumentException("field2 Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(operat2))
            throw new ArgumentException("operat2 Cannot be null or be empty");

        if (string.IsNullOrWhiteSpace(value2))
            throw new ArgumentException("value2 Cannot be null or be empty");

有什么办法可以缩短这个时间吗?

另外,我尝试为此任务创建一个自定义方法,但是它在自定义方法而不是Where()方法中抛出异常,这使得调试变得棘手。


您可以一一检查该值或创建中间函数来执行此操作。

或者,我的建议是:您可以将所有输入放入一个数组中,并使用 LINQ Any 一次检查所有输入:

public DB Where(string field, string operat, string value, string andOr, string field2, string operat2, string value2)
{
    string[] inputs = {field, operat, value, andOr, field2, operat2, value2}
    if (inputs.Any(x => string.IsNullOrWhiteSpace(x))){
        //throw exception
    }
    //continue with your method, all inputs are OK
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查许多参数是否为 null 或空字符串? - C# 的相关文章

随机推荐

  • 如何在 R 中读取和命名不同的 CSV 文件

    我想对几个 csv 文件进行一些比较 因此我编写了以下代码来读取我拥有的不同 csv 文件 path lt C data files lt list files path path pattern csv for file in files
  • Python 类中的变量作用域

    在类中声明变量 在函数之外 所有类函数都可以访问它 基本上是公共变量 在类内的函数内声明变量 只有该函数可以访问它 它在该函数的范围内 声明一个变量self variable name 在类内的函数内部 所有类函数都可以访问它 这与glob
  • 如何使用 @compatibility_alias 为以前版本的 iOS 的类添加别名

    有人可以告诉我如何使用 compatibility alias 获取一个类 例如 UIActivityViewController 这是 iOS 6 中新增的 并使用 compatibility alias 使其在 iOS 5 和 iOS
  • 自定义动画菜单 CSS/ jQuery

    我有这个代码片段 想知道是否有可能对其进行修改 以便在悬停翻译后获得 在单击事件上保持原位或向右移动几个像素 直到单击另一个菜单按钮 mynewmenu implementation nav ul li mouseover function
  • 无法将用户输入值回显到批处理脚本中的文件

    我正在编写一个批处理文件 它将根据多个用户输入值生成 写入属性文件 但是 它不记录输入的值 结果看起来像 prop1 prop2 我想知道是否有一些我需要知道的设置会阻止它工作 奇怪的是 如果我多次运行这个特定的脚本 echo 输出的值似乎
  • Cordova 无法为 2097152KB 对象堆保留足够的空间

    我是 cordova 新手 正在尝试创建一个 android HelloWold 项目 当我使用cordova platforms add android 它会抛出一些异常 D CordovaSpace helloWorld gt cord
  • 如何使用 SMO 更有效地检索 SQL 存储过程参数?

    我正在尝试检索 StoredProcedure 中所有参数的 DefaultValue 我的应用程序是用 C NET 构建的 访问 Microsoft SQL 2008 数据库 我使用 SqlCommandBuilder DerivePar
  • 模拟列表并尝试迭代它

    目前使用 Mockito 来测试我的一个类中的方法 我的类包含一个列表 并且该方法接受同一类的对象 问题是当我尝试从对象迭代列表时 我得到一个指向列表的空指针 下面您将看到代码片段 private Shipment shipment pri
  • 原始套接字编程 UDP Python

    如何在 python 中以 SOCK RAW 格式添加自定义字段 如 IP 和 UDP 标头 我想在数据包中有一个自定义字段并在计算中使用该字段 您没有指定自定义字段的位置 此示例允许您随意构建 UDP 标头 至少在 Linux 上 可能存
  • JavaScript 字符串相等性能比较

    我有一个 JavaScript 菜鸟问题 假设我们有两个相等的非常大的字符串 一百万个字符或更多 它们具有相同的长度和相同的内容 假设我们有这两个函数 它们都执行相同的操作 比较字符串 function equals1 a b return
  • 如何在空手道上集成 socket.io

    我知道空手道有对 WebSocket 的内置支持 但无论如何可以使用套接字 io空手道 我想将消息发送到与 socket io 通信的微服务中 并等待响应以断言该消息符合预期 不 您不能使用空手道中的任意 JavaScript 库 而且通常
  • 将值附加到 c 数组

    这是一个非常简单的问题 但我不知道该怎么做 例如 我有一个名为Array包含值 1 2 3 4 5 6 我想添加第七个值 7 到数组 因此它包含 1 2 3 4 5 6 7 有一个函数可以做到这一点吗 我需要包含任何额外的头文件吗 任何帮助
  • 适用于即时消息传递的协议

    我们必须使用合适的协议开发一个用于即时消息传递的本机移动应用程序 我们还将为该应用程序开发一个网站 以便那些无法登录移动设备的人可以通过该网站继续进行即时消息传递 随后 我们将向本机移动应用程序和网站添加语音和视频通话功能 现在我的问题是
  • JavaScript %(模)对于负数给出负结果

    根据谷歌计算器 13 64 is 51 根据 Javascript 参见此JSBin it is 13 我该如何解决 Number prototype mod function n use strict return this n n n
  • OData异常复杂类型“WebTools.Order”通过属性“Customer”引用实体类型“WebTools.Customer”

    我正在开始使用 OData 和实体框架 我创建了一个公开客户的控制器 在模型 edmx 中只有一个实体 客户 并且一切正常 数据正在渲染 现在 当我添加第二个实体 订单 从数据库更新模型 选择订单 时 一对多 1 个客户对多个订单 会自动设
  • Android Studio:Gradle:错误:找不到符号变量

    我正在开发我的应用程序 一切正常 直到我尝试在 java 中显示图像 我运行了一次应用程序 运行正常 显示了图片 之后它要求我导入一些库 我导入了它们 之后我的活动出现错误 错误如 Gradle error cannot find symb
  • WPF 中的 Thread.Join UI 块

    我创建了一个自定义MessageWindow为了摆脱旧的并融入我自己的风格 我的问题是 例如 当我单击按钮打开自定义MessageWindow它并没有真正阻止我的用户界面 public static void Show string cap
  • 调试 Angular 和 Polymer dart

    我问了一个早些时候提问关于获得一个可以很好地配合的角形和聚合物版本 现在我在 dartium 和 chrome 中运行它时遇到一些问题 我的代码与上一个问题中的代码相同 完成后 我将写一篇博文 介绍如何在 Dart 中启动和运行 Mater
  • AG-Grid:无法更新网格中的字段,因为它是只读的

    我正在尝试更新 ag grid 中的字段 但它不断返回错误 TypeError 无法分配给对象 object Object 的只读属性 数量 它允许我编辑单元格 但是当我尝试更新时 它会出现此错误 我正在使用 ngrx 存储中的可观察数据来
  • 如何检查许多参数是否为 null 或空字符串? - C#

    我有下面的方法 我需要检查参数是否为空或为空 public DB Where string field string operat string value string andOr string field2 string operat2