虽然 .NET 应用程序一般都运行在基于 Windows 的机器上(Mono 提供非 Windows 系统的支持),但是 Windows 的版本和其它系统特征也有很多不同。例如,你可能需要访问当前机器名、文件夹图位置、操作系统版本、当前用户名等内容。.NET Framework 在 System 命名空间下的 Environment 类中为你提供了这些答案。
Environment 类分析
使用System.Environment类可以得到有关主机环境的信息,能得到的主机环境包括以下这些:
· 命令行参数
· 退出代码
· 环境变量设置
· 调用堆栈的内容
· 系统启动后的连续运行时间
· 执行引擎的版本
使用System.Environment类中包含的属性和方法可以访问这些信息。在给出代码示例之前,让我们先看一下这些属性和方法。首先看System.Environment类提供的方法:
· Exit:中止当前的进程,并将进行退出代码设置为特定值。退出代码作为整型参数传递给该方法。
· GetCommandLineArgs:该方法返回在命令行中指定的参数,返回类型为字符串数组。
· GetEnvironmentVariable:该方法接受环境变量的名称作为参数,然后返回指定的环境变量的值(以字符串返回)。
· GetEnvironmentVariables:该方法以IDictionary对象返回所有环境变量和它们的当前设置。
此外,System.Environment还提供以下属性:
· CommandLine:只读字符串属性,返回当前进程在启动时在命令行输入的数据。
· ExitCode:写读/写整型数值属性,该属性提供对进程的退出代码的访问。如果一个进程在退出时没有返回值,那么它就返回System.Environment.ExitCode。如果应该程序没有设置这个属性,那么它返回零。
· HasShutdownStarted:只读布尔属性,指出一个应用程序是否已经启动了关闭的进程。
· NewLine:只读字符串属性,返回当前平台的newline特性。
· StackTrace:只读字符串属性,以字符串值返回调用堆栈的当前状态。
· TickCount:只读整型数值属性,返回自系统启动后所经过的毫秒数。
· Version:只读属性,返回当前的系统版本。它以一个 Version 对象的形式返回,其中包含了很多其它的属性。
这些属性和方法很容易使用。下面让我们用几个例子来分析一下它们。