Define struct and use it

image_pdfimage_print
   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 */
using System;

namespace Client.Chapter_3___Structs__Enums__Arrays_and_Classes
{
  public struct MyStruct
  {
    public int MyInt;
    public long MyLong;
    public string MyString;
  }
  public class StructsChapter_3___Structs__Enums__Arrays_and_Classes
  {
    static void Main(string[] args)
    {
      MyStruct TheStruct;

      TheStruct.MyInt = 0;
      TheStruct.MyLong = 0;
      TheStruct.MyString = "Hello World";
    }
  }
}

           
          


Structs And Enums

image_pdfimage_print
   
 

using System;
using System.Collections.Generic;
using System.Text;

struct Date {
    public Date(int ccyy, Month mm, int dd) {
        this.year = ccyy - 1900;
        this.month = mm;
        this.day = dd - 1;
    }

    public override string ToString() {
        return this.month + " " + (this.day + 1) + " " + (this.year + 1900);
    }

    private int year;
    private Month month;
    private int day;
}


enum Month {
    January, February, March, April,
    May, June, July, August,
    September, October, November, December
}
class Program {
    static void Entrance() {
        Month first = Month.December;
        Console.WriteLine(first);
        first++;
        Console.WriteLine(first);

        Date defaultDate = new Date();
        Console.WriteLine(defaultDate);

        Date halloween = new Date(2008, Month.October, 31);
        Console.WriteLine(halloween);
    }

    static void Main() {
        try {
            Entrance();
        } catch (Exception ex) {
            Console.WriteLine(ex.Message);
        }
    }
}

    


Use static method to initialize field

image_pdfimage_print
   
 
using System;

internal class MyClass {
    public int iField1 = FuncA();
    public int iField2 = FuncC();
    public int iField3 = FuncB();

    public static int FuncA() {
        Console.WriteLine("MyClass.FuncA");
        return 0;
    }

    public static int FuncB() {
        Console.WriteLine("MyClass.FuncB");
        return 1;
    }

    public static int FuncC() {
        Console.WriteLine("MyClass.FuncC");
        return 2;
    }
}

public class Starter {
    public static void Main() {
        MyClass obj = new MyClass();
    }
}

    


Demonstrates use of static constructor

image_pdfimage_print

   

/*
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;
    }
}



           
          


Demonstrates how a static field is shared by multiple instances of a class

image_pdfimage_print

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/

//
// Static.cs — Demonstrates how a static field is shared by
// multiple instances of a class.
//
// Compile this program with the following command line:
// C:>csc Static.cs
//
namespace nsStatic
{
using System;

public class clsMainStatic
{
static public void Main ()
{
for (int i = 0; i < 20; ++i) { clsStatic inst = new clsStatic(); } Console.WriteLine ("Created {0} instance of clsStatic", clsStatic.Count); } } class clsStatic { static public int Count { get {return (m_Count);} } static private int m_Count = 0; public clsStatic () { ++m_Count; } } } [/csharp]

Demonstrates access to static and non-static members

image_pdfimage_print

   

/*
C# Programming Tips &amp; Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//
//  Members.cs -- Demonstrates access to static and non-static members
//
//                Compile this program using the following command line:
//                    C:>csc Members.cs
//
namespace nsMembers
{
    using System;
    
    public class StaticMembers
    {
        static public void Main ()
        {
            // Access a static member using the class name. 
            // You may access a static
            // member without creating an instance of the class
            Console.WriteLine ("The static member is pi: " + clsClass.pi);
        
            // To access a non-static member, you must create an instance 
            // of the class
            clsClass instance = new clsClass();

            // Access a static member using the name of the variable 
            // containing the
            // instance reference
            Console.WriteLine ("The instance member is e: " + instance.e);
        }
    }
    class clsClass
    {
        // Declare a static field. You also could use the const 
        // keyword instead of static
        static public double pi = 3.14159;

        // Declare a normal member, which will be created when you 
        // declare an instance
        // of the class
        public double e = 2.71828;
    }
}



           
          


Illustrates the use of static members

image_pdfimage_print

   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example6_1.cs illustrates the use of static members
*/


// declare the Car class
class Car
{

  // declare a static field,
  // numberOfCars stores the number of Car objects
  private static int numberOfCars = 0;

  // define the constructor
  public Car()
  {
    System.Console.WriteLine("Creating a Car object");
    numberOfCars++;  // increment numberOfCars
  }

  // define the destructor
  ~Car()
  {
    System.Console.WriteLine("Destroying a Car object");
    numberOfCars--;  // decrement numberOfCars
  }

  // define a static method that returns numberOfCars
  public static int GetNumberOfCars()
  {
    return numberOfCars;
  }

}


public class Example6_1
{

  public static void Main()
  {

    // display numberOfCars
    System.Console.WriteLine("Car.GetNumberOfCars() = " +
      Car.GetNumberOfCars());

    // create a Car object
    Car myCar = new Car();
    System.Console.WriteLine("Car.GetNumberOfCars() = " +
      Car.GetNumberOfCars());

    // create another Car object
    Car myCar2 = new Car();
    System.Console.WriteLine("Car.GetNumberOfCars() = " +
      Car.GetNumberOfCars());

  }

}