【问题标题】:Checking if multiple string parameter values are empty in a method检查方法中的多个字符串参数值是否为空
【发布时间】:2014-05-18 19:51:26
【问题描述】:

如果我有类似的 C# 方法

public void MyMethod(object myObject, string s1, string s2, string s3, ...)
{ ... }

我需要对字符串进行值检查(if !string.IsNullOrEmpty(var)),而不是检查每个变量,因为有很多 if 检查,是有没有更通用的方法可以做到这一点?

我希望使用 ParameterInfo,直到发现您无法检索参数的值。我的参数要么是“”,要么是数字值(作为字符串)或真/假(作为字符串)——这些将进入 web.config,因此是字符串。方法变量的名称是进入 web.config 的参数名称。我正在阻止将具有 null/空值的参数写入 web.config,因此是 IsNullOrEmpty 检查。

现在我为每个方法参数提供的内容如下,只是为了让您了解格式。

string name, value;
if (!string.IsNullOrEmpty(s1))
{
 name = "s1";
 value = s1;
 /* do stuff */
}
if (!string.IsNullOrEmpty(s2))
{
 name = "s2";
 value = s2;
 /* do stuff */
}
/* too many of these */

【问题讨论】:

  • 你为什么有myObject?您是否只是需要找到一种更简单的方法来检查 null 或空?在这种情况下,您可以使用 params string[] values 并通过循环遍历它们。 namevalue 到底是干什么用的?
  • 该对象用于其他目的(标识 IIS 网站),并且名称/值是 web.config 中属性的键值对,但它们都必须在这种特殊情况。

标签: c# asp.net web-config


【解决方案1】:

我认为传递它而不是 string1、string2 等会更好。类似于字符串数组 (string[])。

这样您将能够传递 2 个参数,即 10000,并且您无需检查,因为在您的数组中,如果您愿意,您不会包含空值;)

编辑:字典获胜

public void MyMethod(object myObject, Dictionary<int, string> yourParams)
{ ... }

【讨论】:

  • 我想知道这样的东西是否适用于二维数组?在提交页面,添加“attributeName”、“attributeValue”(其中值不为空/空)。
  • mmmm,为什么是二维数组?为什么不是字典?我认为使用字典会更容易;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2014-06-23
  • 2011-05-23
  • 1970-01-01
  • 2010-09-27
  • 2011-05-30
  • 2015-06-12
相关资源
最近更新 更多