如果NULL值与环境变量相比较,会发生什么?

本文关键字:什么 相比较 NULL 环境变量 如果 | 更新日期: 2023-09-27 17:50:39

我自学升C。我用代码if (Environment.GetEnvironmentVariable("TS_STRIP_DEV") == null)检查环境变量是否可用。代码正在检查值为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";