C# 查找环境变量是否在C中定义#

C# 查找环境变量是否在C中定义#,c#,environment-variables,C#,Environment Variables,下面是我检查环境变量是否已定义的代码 namespace ConsoleApplication6 { class Program { static void Main(string[] args) { if(Environment.GetEnvironmentVariable("qwert")==null) Console.WriteLine(Environment.GetEnvironmentVar

下面是我检查环境变量是否已定义的代码

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            if(Environment.GetEnvironmentVariable("qwert")==null)
            Console.WriteLine(Environment.GetEnvironmentVariable("qwert"));
        Console.WriteLine("hello");
        }
    }
}
但问题是,如果我将环境变量值设置为null,那么它将执行if语句。解决这个问题的方法是什么?该代码应适用于设置任何变量值或设置为null的两种情况

试试这个:

 if(Environment.GetEnvironmentVariable("qwert") != null 
       && !Environment.GetEnvironmentVariable("qwert").ToString().Equals("null"))
试试这个:

 if(Environment.GetEnvironmentVariable("qwert") != null 
       && !Environment.GetEnvironmentVariable("qwert").ToString().Equals("null"))
你的代码应该是

if(!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("qwert")))
    Console.WriteLine(Environment.GetEnvironmentVariable("qwert"));
Console.WriteLine("hello");
你的代码应该是

if(!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("qwert")))
    Console.WriteLine(Environment.GetEnvironmentVariable("qwert"));
Console.WriteLine("hello");

最简单的方法是注销并重新登录。默认情况下,系统级别上的环境变量更改(例如,您正在使用的对话框)仅由Explorer拾取,其他正在运行的进程不会拾取更改。因此,要么重新启动您的程序(如果您从VS启动它,请先重新启动Visual Studio),要么只需注销一次,然后再次登录,就可以获得一个全新的状态。

最简单的方法是注销并再次登录。默认情况下,系统级别上的环境变量更改(例如,您正在使用的对话框)仅由Explorer拾取,其他正在运行的进程不会拾取更改。因此,要么重新启动您的程序(如果您从VS启动它,请先重新启动Visual Studio),要么只需注销一次,然后重新登录,就可以获得一份新的记录。

Variable value:null
实际上并不意味着
null
。我认为您应该将其留空以获得等效的
null
值。

变量值:null
实际上并不意味着
null
。我认为您应该将其留空,以获得一个
C
等效值
null
值。

您确定在更改环境变量后打开了一个新控制台吗<代码>“null”和
null
应该非常不同。另外,我希望您想使用
=
而不是这里的
=
。另外,请注意,将系统变量设置为“null”不会使其在代码中成为
null
。不幸的是,它是null,两个null都是相同的。您确定在更改环境变量后打开了新控制台吗<代码>“null”和
null
应该非常不同。另外,我希望您想使用
=
而不是这里的
==
。另外,请注意,将系统变量设置为“null”不会使代码中的
null
变为null。不幸的是,它是null,两个null都是sameYes,现在起作用了我正在看这个是的,现在起作用了我正在看这个