Mega Code Archive

 
Categories / C# / Class Interface
 

Demonstrates use of static constructor

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // SysInfo.cs -- Demonstrates use of static constructor // //               Compile this program with the following command line: //                   C:>csc SysInfo.cs // namespace nsSysInfo {     using System;     using System.Runtime.InteropServices;     using System.Windows.Forms;          public class SysInfo     {         static public void Main()         {             Console.WriteLine ("Current user is " +                                clsSystemInfo.User);             Console.WriteLine ("Current Time Zone is " +                                clsSystemInfo.TZ);             Console.WriteLine ("Current domain is " +                                clsSystemInfo.Domain);             Console.WriteLine ("Current Host is " +                                clsSystemInfo.Host);             Console.WriteLine ("Command interpreter is " +                                 clsSystemInfo.ComSpec);         }     }     class clsSystemInfo     {         private clsSystemInfo () {}         [DllImport ("kernel32.dll")]         static extern public long GetEnvironmentVariable (string name,                                             byte [] value, long size);         static clsSystemInfo ()         {             m_User = SystemInformation.UserName;             m_Host = SystemInformation.ComputerName;             DateTime now = DateTime.Now;             TimeZone tz = TimeZone.CurrentTimeZone;             m_TimeZone = tz.IsDaylightSavingTime(now)                          ? tz.DaylightName : tz.StandardName;             m_Domain = SystemInformation.UserDomainName;             byte [] comspec = new byte [256];             if (GetEnvironmentVariable ("COMSPEC", comspec, 256) > 0)             {                 foreach (byte ch in comspec)                 {                     if (ch == 0)                         break;                     m_ComSpec += (char) ch;                 }             }         }         static public string User         {             get             {                 return (m_User);             }         }         static public string TZ         {             get             {                 return (m_TimeZone);             }         }         static public string Domain         {             get             {                 return (m_Domain);             }         }         static public string Host         {             get             {                 return (m_Host);             }         }         static public string ComSpec         {             get             {                 return (m_ComSpec);             }         }         private static string m_User;         private static string m_TimeZone;         private static string m_Domain;         private static string m_Host;         private static string m_ComSpec;     } }