在.net / c#中是否有一种isset()

本文关键字:一种 isset net 是否 | 更新日期: 2023-09-27 18:14:05

我需要检查uri请求是否有参数

我需要检查参数是否设置。在。net/c#上有一个函数吗?

在.net / c#中是否有一种isset()

未设置的值将为null或空:

value = Request["param"];
if (String.IsNullOrEmpty(value))
{
    // param is not set
}

如果参数名在查询字符串中,但值不在查询字符串中,则查询字符串为空。如果该名称不在查询字符串中,则该值为空。例如,

&param1=&param2=value 
// Request["param1"] is String.Empty
// Request["param3"] is null

是的,你可以使用httutility . parsequerystring()实用程序方法,它返回NameValueCollection,然后调用Get():

bool contains = HttpUtility.ParseQueryString(uri.Query)
                           .Get("ParameterName") != null;

Get()方法

返回一个字符串,其中包含以逗号分隔的关联值列表使用NameValueCollection中指定的键(如果找到);否则,空

编辑:

如果你有一个HttpRequest的实例,那么就像下面这样使用内置的索引器:

bool contains = Request["ParamName"] != null;

在c#中未实现的对象为NULL。但是如果你试图访问这个对象,你会得到异常。您可以尝试捕获它,或者在变量前添加@。c#的isset看起来像这样(对于字符串数组)

// Isset
internal static bool isset(String[] m, int index)
{
    return (@m[index] == null) ? false : true;
}

这样使用:if (App.isset(parts, 1)) cat = parts[1];或者只是"in please"解决方案

if (@parts[1] != null) cat = parts[1];

你可以使用try和catch来包装你的uri请求?

捕获NullReferenceException或只是异常?