Case :1
using System;
namespace Lesson1
{
class Program
{
static void Main(string[]
args)
{
C
obj = new C();
Console.WriteLine("------------");
A
obj1 = new C();
Console.WriteLine("------------");
B
obj2 = new B();
Console.WriteLine("------------");
A
obj3 = new A();
Console.WriteLine("------------");
Console.ReadKey();
}
}
class A
{
public
A()
{
Console.WriteLine("A");
}
}
class B : A
{
public
B()
{
Console.WriteLine("B");
}
}
class C : B
{
public
C()
{
Console.WriteLine("C");
}
}
}
using System;
namespace Lesson1
{
class Program
{
static void Main(string[]
args)
{
C
obj = new C();
//A obj1
= new C();
//GC.Collect();
//Console.WriteLine("------------");
//A obj1
= new C();
//Console.WriteLine("------------");
//B obj2
= new B();
//Console.WriteLine("------------");
//A obj3
= new A();
//Console.WriteLine("------------");
Console.ReadKey();
}
}
class A
{
static
A()
{
Console.WriteLine("A");
}
~A()
{
Console.WriteLine("A destroyed");
}
}
class B : A
{
static
B()
{
Console.WriteLine("B");
}
~B()
{
Console.WriteLine("B destroyed");
}
}
class C : B
{
static
C()
{
Console.WriteLine("C");
}
~C()
{
Console.WriteLine("C destroyed");
}
}
}
using System;
namespace Lesson1
{
class Program
{
static void Main(string[]
args)
{
C
obj = new C();
//A obj1
= new C();
//GC.Collect();
//Console.WriteLine("------------");
//A obj1
= new C();
//Console.WriteLine("------------");
//B obj2
= new B();
//Console.WriteLine("------------");
//A obj3
= new A();
//Console.WriteLine("------------");
Console.ReadKey();
}
}
class A
{
static
A()
{
Console.WriteLine("A");
}
~A()
{
Console.WriteLine("A destroyed");
}
}
class B : A
{
static
B()
{
Console.WriteLine("B");
}
~B()
{
Console.WriteLine("B destroyed");
}
}
class C : B
{
public
C()
{
Console.WriteLine("C");
}
~C()
{
Console.WriteLine("C destroyed");
}
}
}


