如果NULL存在与环境变量进行比较,会发生什么

时间:2014-03-17 10:46:44

标签: c# environment-variables

我是C sharp的自学者。我使用代码if (Environment.GetEnvironmentVariable("TS_STRIP_DEV") == null)来检查环境变量是否可用。代码检查值是否为NULL,即。它不存在。如果值存在且值等于字符串“NULL”,“null”或“nul”

,该怎么办?

3 个答案:

答案 0 :(得分:1)

在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();
}

答案 1 :(得分:0)

null"null"不同。

以前表示该值不存在。即对象尚未初始化。

例如

string s;

后者是一个值,即值存在且该值为“null” 像

string s = "null";

这里s被初始化,其值为“null”。这可以是

string s  = "someuser";

答案 2 :(得分:0)

注意: 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"))
  {

  }
}