/* * 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"; } } }
Month: February 2011
Structs And Enums
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
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
/* 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
/*
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
/* C# Programming Tips & 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
/* 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()); } }