Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
C#检查通过查询字符串从JQuery/Ajax调用接收到的未定义变量_C# - Fatal编程技术网

C#检查通过查询字符串从JQuery/Ajax调用接收到的未定义变量

C#检查通过查询字符串从JQuery/Ajax调用接收到的未定义变量,c#,C#,在讨论这个主题时,有很多问题需要参考Javascript;但是我没有得到任何关于C#的参考 下面的两个“字符串…”语句都返回false // foll querystring value from JQuery/Ajax call var thisfieldvalue = Request.QueryString["fieldvalue"]; bool boola = String.IsNullOrWhiteSpace(thisfieldvalue );

在讨论这个主题时,有很多问题需要参考Javascript;但是我没有得到任何关于C#的参考

下面的两个“字符串…”语句都返回
false

     // foll querystring value from JQuery/Ajax call
     var  thisfieldvalue = Request.QueryString["fieldvalue"];

     bool boola = String.IsNullOrWhiteSpace(thisfieldvalue );
     bool boolb = String.IsNullOrEmpty(thisfieldvalue );
检查C#中未定义字符串变量的最佳方法是什么

注:
我偶尔会通过带有“querystring”的JQuery/Ajax调用获得“Undefined variable”值;当我使用该语句时,它会在C#变量中结束

var thisfieldvalue=Request.QueryString[“fieldvalue”]

并且'thisfieldvalue'变量同时传递'String.IsNullOrWhiteSpace'和'String.IsNullOrEmpty'检查

注2:我再次编辑了问题,以使我的问题更清楚。。。很抱歉,早些时候还不太清楚

C#中没有“未定义”的字符串变量

字符串是一种引用类型,因此如果不定义值,它的默认值为
null


在Visual Studio 2013中,未设置为值(默认值
null
)的字符串与明确设置为
null

的字符串之间没有区别。您的代码甚至不会编译。第一个检查标记为
使用未分配的局部变量

由于C#是一种强类型语言,请充分利用它,明确设置值:

 string Undefined_var = null;
 bool boola = String.IsNullOrWhiteSpace(Undefined_var);
 bool boolb = String.IsNullOrEmpty(Undefined_var);
然后您将得到两个
true
值。

您可以使用其中一个

 string Undefined_var = "[value to test goes here]";  //note that string must be assigned before it is used
 bool boola = String.IsNullOrWhiteSpace(Undefined_var);

 //or     

 bool boolb = String.IsNullOrEmpty(Undefined_var);
不同之处在于,
IsNullOrWhiteSpace
将检查
IsNullOrEmpty
执行的所有操作,以及未定义的变量仅包含空白的情况。但是,由于仅由空白字符组成的字符串在技术上不是未定义的,因此我将使用这两个字符中的
IsNullOrEmpty

但请注意,由于
string
是引用类型,因此默认值为
null
;因此,如果您想进一步缩小范围以消除对空字符串的测试,您可以这样做-

 string Undefined_var = null;
 bool boola = Undefined_var == null;

这个问题不适用于C#,因为C#不允许使用未定义的局部变量。类的成员由成员的默认值初始化(对于引用类型-由null初始化)

if(Request.QueryString[“fieldvalue”]=“未定义”)

这是一根弦,它会被理解为一根弦

如果是5,那就是一个5的字符串


如果不存在,则是一个未定义的字符串

在c#编译器中没有“未定义的变量”这类东西,因为您的代码不会被编译,也不会被编译:另外,如果您将其更改一点以进行编译,对于这两个值,它都返回true,而不是false:这段代码不会编译。我在上面添加了一个注释,解释了我是如何得到这个未定义的值的…@Ratna,都是正确的。在这里(rextester.com/TJER37341),您会收到由于未分配本地值而导致的错误消息。在这里(rextester.com/OTGKOT41237),您可以获得类的未分配成员的默认值。因为成员变量是字符串(引用类型),所以它的成员变量由null初始化。