Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 检查字符串是否为空,然后检查1行中的特定值?_Asp.net_Vb.net_String - Fatal编程技术网

Asp.net 检查字符串是否为空,然后检查1行中的特定值?

Asp.net 检查字符串是否为空,然后检查1行中的特定值?,asp.net,vb.net,string,Asp.net,Vb.net,String,我总是想知道一个字符串querystring值通常是否有一个值,但首先我必须先检查它是否为空,所以我最终得到了两个if-then语句-我是否遗漏了一些东西-必须有更好的方法来做到这一点: If Not String.IsNullOrEmpty(myString) Then If CBool(myString) Then //code End If End If 您选择的语言中的布尔and运算符?条件通常会短路,因此如果第一个条件失败,第二个条件将不会运行/出错。您选择的语言中的

我总是想知道一个字符串querystring值通常是否有一个值,但首先我必须先检查它是否为空,所以我最终得到了两个if-then语句-我是否遗漏了一些东西-必须有更好的方法来做到这一点:

If Not String.IsNullOrEmpty(myString) Then
  If CBool(myString) Then
   //code
   End If
End If

您选择的语言中的布尔and运算符?条件通常会短路,因此如果第一个条件失败,第二个条件将不会运行/出错。

您选择的语言中的布尔and运算符?条件语句通常会短路,因此如果第一个条件语句失败,第二个条件语句将不会运行/出错。

在VB.Net中,条件语句不会短路,但会短路

Or和OrElse也一样

因此,您的代码应该类似于

If Not String.IsNullOrEmpty(myString) AndAlso CBool(myString) Then 
    ....
End If

在VB.Net中,并没有短路,而是有

Or和OrElse也一样

因此,您的代码应该类似于

If Not String.IsNullOrEmpty(myString) AndAlso CBool(myString) Then 
    ....
End If

仅供参考,这种代码非常适合作为扩展方法。简而言之,这意味着您可以使用提供自己代码的方法扩展字符串


查找:

FYI这种代码非常适合作为扩展方法。简而言之,这意味着您可以使用提供自己代码的方法扩展字符串


查一查:

而且正如前面提到的,这也是最通用的答案。但是,您也可以使用各种TryParse方法,这将生成如下代码:

Dim b as Boolean
If Boolean.TryParse(myString, b) AndAlso b Then
End If

另外,当有人在您的查询字符串中发送无聊的消息时,它将使您免于格式异常。

而且正如前面提到的,这也是最通用的答案。但是,您也可以使用各种TryParse方法,这将生成如下代码:

Dim b as Boolean
If Boolean.TryParse(myString, b) AndAlso b Then
End If

另外,当有人在您的查询字符串中发送无用信息时,它将使您免于格式异常。

如果使用.NET 2.0或更高版本,请使用以下选项:

String.IsNullOrEmpty(thestringobject)
将根据具体情况计算为真或假。
我通常在实用程序类中创建另一个函数来执行此检查,并检查修剪/长度,以便知道字符串对象是否为null、空或一串空格。

如果使用.NET 2.0或更高版本,请使用以下命令:

String.IsNullOrEmpty(thestringobject)
将根据具体情况计算为真或假。

我通常在实用程序类中创建另一个函数来执行此检查,并检查修剪/长度,以便知道string对象是否为null、空或一组空格。

是否要检查vb.net短路。。。vbscript没有。巨大的烦恼你想检查vb.net是否短路。。。vbscript没有。非常麻烦,但是不能用静态方法扩展类型,尽管我认为F允许这样做。所以不能使用String.IsNotNullOrEmptyOrFalse,但可以使用abcd.IsNotNullOrEmptyOrFalse。但是如果你把它称为空对象,那会让人感到困惑。是的,你可以-我已经写了很多这种类型的扩展方法:String.IsEmail,String.IsDecimal,String.IsDate,etc-这就是扩展方法的全部要点:扩展方法使您能够向现有类型添加方法,而无需创建新的派生类型type@Zhaph-扩展不属于该类型的实例。意思是,你可以把它叫做abcd.IsEmail。您不能执行像String.IsEmailabcd这样的扩展。因此,如果您有一个空字符串,代码将有效地读取null.IsNotNullOrEmptyOrFalse。虽然合法,但这很奇怪。但是你不能用静态方法扩展一个类型,尽管我认为F允许这样做。所以不能使用String.IsNotNullOrEmptyOrFalse,但可以使用abcd.IsNotNullOrEmptyOrFalse。但是如果你把它称为空对象,那会让人感到困惑。是的,你可以-我已经写了很多这种类型的扩展方法:String.IsEmail,String.IsDecimal,String.IsDate,etc-这就是扩展方法的全部要点:扩展方法使您能够向现有类型添加方法,而无需创建新的派生类型type@Zhaph-扩展不属于该类型的实例。意思是,你可以把它叫做abcd.IsEmail。您不能执行像String.IsEmailabcd这样的扩展。因此,如果您有一个空字符串,代码将有效地读取null.IsNotNullOrEmptyOrFalse。虽然合法,但这很奇怪。否决投票,因为AndAlso b正在评估b是否为真。它应该简单地读为:Dim b as Boolean If Boolean.TryParsemyString,b Then EndIf@Russ-不,AndAlso b基本上等同于原始If CBoolmyString行。在这个场景中,两者都需要。您是否运行了代码?因为我做到了,我说的是真的。如果myString为False,则不需要AndAlso bIf,然后需要AndAlso b,否则将运行内部块,而原始代码不会运行。DOWNDVOTE,因为AndAlso b正在计算b是否为true。它应该简单地读为:Dim b as Boolean If Boolean.TryParsemyString,b Then EndIf@Russ-不,AndAlso b基本上等同于原始If CBoolmyString行。在这个场景中,两者都需要。您是否运行了代码?因为我做到了,我说的是真的。如果myString为False,则不需要AndAlso bIf,然后需要AndAlso b,否则将运行内部块,而原始代码不会运行。问题是我得到了一个无效的强制转换异常,因为
当应用Cbool时,se myString什么都不是,下面是错误:>从字符串到类型的转换>'Boolean'无效。建议您使用Boolean.TryParse检查有效的字符串/布尔转换,然后使用Boolean.Parse实际解析它们。为了适应.Net,最好开始使用.Net方法,而不是Visual Basic旧版帮助程序。问题是我遇到了无效的强制转换异常,因为在应用Cbool时myString什么都不是,下面是错误:>从字符串到类型的转换>“Boolean”无效。只是一个建议,您应该使用Boolean.TryParse检查有效的字符串/布尔转换,然后使用Boolean.Parse实际解析它们。为了适应.Net,最好开始使用.Net方法,而不是Visual Basic遗留帮助程序。