如果NULL值与环境变量相比较,会发生什么?
本文关键字:什么 相比较 NULL 环境变量 如果 | 更新日期: 2023-09-27 17:50:39
我自学升C。我用代码if (Environment.GetEnvironmentVariable("TS_STRIP_DEV") == null)
检查环境变量是否可用。代码正在检查值为NULL,即。它不存在。如果该值存在并且该值等于字符串"NULL"、"NULL"或"NULL"
在c#中,null值是特殊的,与值为"null"的字符串没有关系。"null"不等于null
如果该值可能不存在,或者它可能是一个字符串值,这意味着它没有设置,那么你需要单独检查每种情况,即
static void Main(string[] args)
{
string tsStripDev = Environment.GetEnvironmentVariable("TS_STRIP_DEV");
if (tsStripDev == null || tsStripDev == "null" || tsStripDev == "nul")
Console.WriteLine("TS_STRIP_DEV was not set");
else
Console.WriteLine("TS_STRIP_DEV = {0}", tsStripDev);
Console.ReadLine();
}
注: null
与"null"
不同。
null
是引用类型变量的默认值。这意味着引用类型变量指向nothing/no instance
。
string str; //here str referes no string instance so str contains null.
但是如果你给某个字符串赋值那么str指向它的实例它不会是null
string str="null"; //here str is not equals to null but equals to "null"
其中"null"
和其他字符串一样是字符串。
解决方案:您可以将字符串转换为小写,然后比较
试试这个:
if (Environment.GetEnvironmentVariable("TS_STRIP_DEV") != null)
{
if(!Environment.GetEnvironmentVariable("TS_STRIP_DEV").ToString().
ToLower().Equals("null"))
{
}
}
null
与"null"
不同
Former表示该值不存在。即对象尚未初始化。
例如string s;
后者是一个值,即该值存在且该值为"null"像
string s = "null";
这里s被初始化,其值为"null"。可以是
string s = "someuser";