在.net / c#中是否有一种isset()
本文关键字:一种 isset net 是否 | 更新日期: 2023-09-27 18:14:05
我需要检查uri请求是否有参数
我需要检查参数是否设置。在。net/c#上有一个函数吗?
未设置的值将为null或空:
value = Request["param"];
if (String.IsNullOrEmpty(value))
{
// param is not set
}
如果参数名在查询字符串中,但值不在查询字符串中,则查询字符串为空。如果该名称不在查询字符串中,则该值为空。例如,
¶m1=¶m2=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或只是异常?