Monday, 1 October 2012

C# - Classes and Member (Static/Non-static)

Static Classes

(1) Cannot be instantiated (no instance)
/***********Static Class - FactorialClass ***********/
public static class FactorialClass //Static Class declaration
...
FactorialClass a = new FactorialClass (); // <= Not allow
/***********Static Class - FactorialClass ***********/

(2) Contain only static member
/***********Static Class - FactorialClass ***********/
    public static class FactorialClass                          //Static Class
    {
        public static int Factorial(int i)                      //Static Member
        {
            return ((i <= 1) ? 1 : (1 * Factorial(i - 1)));
        }
        public int Factorial2(int i)                      //<= Non Static Member not allowed
        {
            return ((i <= 1) ? 1 : (1 * Factorial(i - 1)));
        }
    }
/***********Static Class - FactorialClass ***********/

(3) Is Sealed (cannot inherit)

(4) Cannot contain instance constructor

(5) Access static member using class itself
/***********Static Class - FactorialClass ***********/
            int fac = FactorialClass.Factorial(5);          // Static class, all member must be static
/***********Static Class - FactorialClass ***********/

Static Member

(1) Static member can defined in static class or non-static class
  • public static class FactorialClass  //Static Class
  • public class FactorialClass           // Non Static Class

(2) Always accessed by the class name
  •  int fac = FactorialClass.Factorial(5); // Static class, all member must be static

(3) Can be called without instantiated

(4) Does not exist in instances.
  • AddClass a = new AddClass();     //Instance a does not contain static member