- Static Constructor is used to initialize static Data fields
 - Static Data Fields will have maintained only one instance for any no of objects created to the class
 - To make any member of a class static, use static keyword
 - Static members are not accessible with object rather; we need to access with class name only
 - There can be only one static constructor in the class
 - The static constructor should be without parameters
 - It can only access the static members of the class
 - There should be no access modifiers in static constructor definition
 - If a class is static, then we can’t create object for static class
 - Static constructor will be involved only once i.e., 1st object created for the class from second object onwards static constructor will not be called
 
Example:-
Class Diagram :-
using
  System; 
using
  System.Collections.Generic; 
using
  System.Linq; 
using
  System.Text; 
namespace
  CAConstructors 
{ 
    class ClsSample 
    { 
        int
  v; 
        static
  int s; 
        public
  ClsSample() 
        { 
            v = 9; 
        } 
        static
  ClsSample() 
        { 
            s = 9; 
        } 
        public
  void Display() 
        { 
            Console.WriteLine("value of i is   
  :-  " + v); 
            v++; 
            Console.WriteLine("value of j is   
  :-  " + s); 
            s++; 
        } 
    } 
    class ClsSConstructor 
    { 
        static
  void Main() 
        { 
            ClsSample
  Obj1 = new ClsSample(); 
            Obj1.Display(); 
            ClsSample
  Obj2 = new ClsSample(); 
            Obj2.Display(); 
            ClsSample
  Obj3 = new ClsSample(); 
            Obj3.Display(); 
            ClsSample
  Obj4 = new ClsSample(); 
            Obj4.Display(); 
            Console.Read(); 
        } 
    } 
} 
 | 
 
Output :-
- It’s not possible to Initialize non-static Data Fields, with in the static constructors, it raises compilation error
 
         static
ClsSample( )
        {
                v=100//Not allowed
                 s=100;
        }
- We can initialize static Data fields with a non-static constructor but they lose their static nature
 
          public
ClsSample( )
         {
               v=100;
               s=100; //Allowed But loses its static
nature
          }
- We can initialize static Data fields in both static and non static constructors but static Data Fields will lose their static nature
 
        public
ClsSample( )
       {
               v=100;
                s=100; //Allowed But lose its static
nature
        }
        static
ClsSample( )
       {
             s=100; //Allowed
        }


No comments:
Post a Comment