有很多问题在讨论这个主题时引用了Javascript;但是我无法得到任何参考C#。
' String ........'以下陈述返回false
。
// foll querystring value from JQuery/Ajax call
var thisfieldvalue = Request.QueryString["fieldvalue"];
bool boola = String.IsNullOrWhiteSpace(thisfieldvalue );
bool boolb = String.IsNullOrEmpty(thisfieldvalue );
在C#中检查未定义字符串变量的最佳方法是什么?
注意:
我得到了未定义的变量'值偶尔通过JQuery / Ajax调用' querystring&#39 ;;当我使用语句
var thisfieldvalue = Request.QueryString [" fieldvalue"];
和' thisfieldvalue'变量传递了' String.IsNullOrWhiteSpace'以及' String.IsNullOrEmpty'检查....
注2:我已经再次编辑了这个问题,以使我的问题更清楚......我很抱歉,早些时候它不是那么清楚......
答案 0 :(得分:1)
你可以使用
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
所做的所有事情,以及Undefined_var仅包含空格的情况。但是,由于一个仅由空白字符组成的字符串在技术上尚未定义,因此我会选择两者中的IsNullOrEmpty
。
但请注意,由于string
是引用类型,因此默认值为null
;所以如果你想缩小一步以消除对空字符串的测试,你可以做这样的事情 -
string Undefined_var = null;
bool boola = Undefined_var == null;
答案 1 :(得分:0)
C#中没有“未定义的”字符串变量。
String是一种引用类型,因此如果您没有定义值,则默认值为null
。
未设置为值的字符串(默认值null
)与明确设置为null
的字符串之间没有区别。
答案 2 :(得分:0)
在Visual Studio 2013中,您的代码甚至无法编译。第一项检查标记为use of unassigned local variable
。
由于C#是强类型语言,因此请使用它,明确设置值:
string Undefined_var = null;
bool boola = String.IsNullOrWhiteSpace(Undefined_var);
bool boolb = String.IsNullOrEmpty(Undefined_var);
然后您将获得两个true
值。
答案 3 :(得分:0)
该问题不适用于C#,因为C#不允许使用未定义的局部变量。类的成员由成员的默认值初始化(对于引用类型 - 由null初始化)。
答案 4 :(得分:0)
if(Request.QueryString [" fieldvalue"] ==" undefined")
它是一个字符串,字面意思是字符串。
如果是5则是5
的字符串如果它不存在则是一串未定义的