Thursday, November 29, 2018

டாட்நெட் தொழில்நுட்பம் கற்றுக் கொள்ளலாம்.-பகுதி-17



C# - Partial Class
பொதுவாக ஒவ்வொரு கிளாஸும் தனித் தனி ஃபைலில் cs என்கின்ற extension உடன் இருக்கும். சி ஷார்ப்பில் ஒரே கிளாஸை தனித் தனி  ஃபைல்களில் பிரித்து எழுதலாம். அதற்கு partial கீவேர்டு பயன்படுகின்றது. Partial modifier என்பதை நாம் கிளாஸ், மெத்தட், இன்டெர்ஃபேஸ், ஸ்ட்ரக்ட்ஆகியவற்றிற்கு பயன்படுத்தலாம்.
உதாரணத்திற்கு கீழே MyPartialClass ஆனது PartialClassFile1.cs மற்றும்  PartialClassFile2.cs:  என இரண்டு ஃபைல்களில் பிரித்து எழுதப்பட்டுள்ளது
சான்று நிரல்
public partial class MyPartialClass
{
    public MyPartialClass()
    {
    }

    public void Method1(int val)
    {
        Console.WriteLine(val);
    }
}
Example: PartialClassFile2.cs
public partial class MyPartialClass
{
    public void Method2(int val)
    {
        Console.WriteLine(val);
    }
}
PartialClassFile1.cs  என்பதில் உள்ள MyPartialClass ஆனது கன்ஸ்ட்ரக்டர் , Method1 ஆகியவற்றையும் PartialClassFile2  ஆனது Method2 என்கின்ற public மெத்தடையும் கொண்டுள்ளது. கம்பைலர் இரண்டு ஃபைல்களையும் ஒன்றினைக்கின்றது.
Example: Partial class
public class MyPartialClass
{
    public MyPartialClass()
    {
    }
       
    public void Method1(int val)
    {
        Console.WriteLine(val);
    }

    public void Method2(int val)
    {
        Console.WriteLine(val);
    }
}
Partial Class தேவைகள்
  • எல்லா partial கிளாஸ்களும் ஒரே அசெம்பிளி மற்றும் ஒரே நேம்ஸ்பேஸில் இருக்க வேண்டும். எல்லா பகுதிககும் ஒரே Accessiblity(public or private)-ல் இருக்க வேண்டும்.
  •  ஏதாவது ஒரு பகுதி  abstract அல்லது sealed எனில் மொத்த கிளாஸும் அதே  வகையாகும்
  • ஒவ்வொரு பகுதியும் வேவ்வேறு பேஸ் டைப்பாக இருக்கலாம். இறுதியில் கிளாஸ் ஆனது எல்லா பேஸையும் இன்ஹெரிட் செய்யும்.
  •  Partial modifier ஆனது உடனடியாக   class, struct, or interface என்கின்ற கீவேர்டுக்கு முன்னால் இருக்க வேண்டும்.

Partial Class  நன்மைகள்
ஒன்றுக்கும் பட்ட நிரலாளர்கள் ஒரே நேரத்தில் வெவ்வேறு ஃபைல்களில் உள்ள ஒரே கிளாஸில் பணியாற்றலாம்.

  • Multiple developers can work simultaneously with a single class in separate files.
  • தானியியங்கி முறையில் உருவாக்கப் படும் நிரல் வரிகளானது ஒவ்வொரு தடவையும் திரும்ப உருவாக்கப்பட தேவையில்லை.

Partial Methods
A partial class அல்லது   struct ஆனது partial மெத்தட்களை கொண்டிருக்கலாம்.ஏதாவது ஒரு பார்சியல் கிளாஸ் ஆனது அந்த மெத்தடின் அறிவித்தலை கொண்டிருக்க வேண்டும். மற்ற கிளாஸில் அதனுடைய implement செய்யப் படலாம்.
Example: PartialClassFile1.cs:
public partial class MyPartialClass
{
    partial void PartialMethod(int val);

    public MyPartialClass()
    {
           
    }

    public void Method2(int val)
    {
        Console.WriteLine(val);
    }
}
Example: PartialClassFile2.cs:
public partial class MyPartialClass
{
    public void Method1(int val)
    {
        Console.WriteLine(val);
    }

    partial void PartialMethod(int val)
    {
        Console.WriteLine(val);
    }
}
PartialClassFile1.cs ஆனது partial method –ன் அறிவித்தலையும் மற்றும் PartialClassFile2.cs ஆனது நடைமுறைப் படுத்தலையு ம் கொண்டிருக்கின்றது.
Partial Method தேவைகள்>

  • partial method  ஆனது  partial modifier உடன் தொடங்கப் படவேண்டும்.
  •  partial method ஆனது ref பராமீட்டரை கொண்டிருக்கலாம் ஆனால் out பராமீட்டரை கொண்டிருத்தல் ஆகாது.
  •  Partial methods ஆனது தானாகவே private method ஆகும்.
  • Partial methods ஆனது ஸ்டேட்டிக் மெத்தட் ஆக இருக்கலாம்.
  • Partial methods ஆனது ஜெனரிக் ஆக இருக்கலாம்..
Partial Method
Partial Class
http://www.tutorialsteacher.com/Content/images/bulb-glow.pngPoints to Remember :
  1. Partial கீவேர்டு ஆனது ஒரு கிளாஸ், இன்டெர்ஃபேஸ், மெத்தட் ஆகியவற்றை தனித்தனி கிளாஸ் ஃபைல்களில் பிரித்தெழுத பயன்படுகின்றது.
  2. பார்சியம் மெத்தட் ஆனது அதை நடைமுறைப்ம் படுத்துவதற்கு முன்னால் அறிவிக்கப் பட வேண்டும்.
  3.  பார்சியல் கிளாஸ்,பார்சியல் மெத்தட் எல்லாமே ஒரே ஆக்சஸ் மாடிஃபையர் கொண்டிருத்தல் வேண்டும்.
What Inheritance is
ஒரு கிளாசின் பண்புகளை மற்ற கிளாஸில் பெறுவது இன்ஹெரிடன்ஸ் எனப்படுகின்றது.ஒரு கிளாஸ் மற்றொரு கிளாஸை நீட்டுவிக்கின்றது.அதாவது ஒரு கிளாஸின் பண்புகள் மற்றும் மெதட்கள் ஆனது திரும்ப உபயோகப் படுத்தப்படுகின்றது.

சி# இன்ஹெரிடன்ஸ் வகைகள்.



இன்ஹெரிடண்ஸ் என்பது அடிப்படையில் பேஸ் கிளாஸ், டெரிவ்டு கிளாஸ் எனப் பிரித்தெடிக்கப் படுகின்றடது.
 Base class – இந்த கிளாஸின் உறுப்புகள் தான் டெரிவ்டு கிளாஸில் ரீயூஸ் செய்யப் படிகின்றது.
 Derived class –இந்த கிளாஸ் பேஸ் கிளாஸின் உறுப்புகளை இன்ஹெரிட் செய்கின்றது.
 Single inheritance 
 ஒரு பேஸ் கிளாஸை மற்றொரு கிளாஸ் நீட்டுவிப்பதை சிங்கிள்
 இன்ஹெரிடன்ஸ் எனப் படுகின்றது. 

using System;
namespace Application
{
        class A
        {
        public void show() 
        {
         Console.WriteLine("Welcome to the world of C#");
        }
}
class B : A //class B is derived by class A
{
 public void display() 
 {
  Console.WriteLine("Hello");  
 }
}
class single
{
 public static void Main()
 {
  B obj = new B();
  obj.show();
  obj.display();
 }
}
}
Output:
Welcome to the world of C#
Hello




Hierarchical inheritance

 

ஒரு பேஸ் கிளாஸை ஒன்றுக்கும் மேற்பட்ட கிளாஸ்கள் இன்ஹெரிட்
 செய்வதை ஹைராரிகிள் இன்ஹெரிட்டன் எனப்படுகின்றது. 


using System;
namespace Application
{
 class A
 {
  public void show()
  {
   Console.WriteLine("Welcome to the world of c#");
 }
}
 class B : A //class B is derived by class A
 {
  public void display()
  {
   Console.WriteLine("Hello");
  }
 }
 class C : A //class C is derived by class A
 {
  public void show1()
  {
   Console.WriteLine("How are You ?");
  }
 }
 class hierarchical
 {
  public static void Main()
  {
   B objl = new B();
   C obj2 = new C();
   objl.show();
   objl.display();
   obj2.show1();
  }
 }
}
Output:
Welcome to the world of c#
Hello
How are You ?


மேலே உள்ள ஒரு பேஸ் கிளாஸ் மற்றும் இரண்டு டெரிவ்டு
 கிளாஸ்கள் உள்ளன. 

Multilevel inheritance



ஒரு கிளாஸை இன்ஹெரிட் செய்யும் டெரிவ்ட் கிளாஸ்
 மற்றொரு கிளாஸால் இன்ஹெரிட் செய்யப்படுகின்றது. 





using System;
namespace Application 
{
class A
{
 public void show()
 {
  Console.WriteLine("Welcome to the world of c#");
 }
}
class B : A //class B is derived by class A
{
 public void display()
 {
  Console.WriteLine("Hello");
 }
}
class C : B //class C is derived by class B
{
 public void show1()
 { 
    Console.WriteLine("How are You ?");
 }
class multilevel
{
 public static void Main()
 {
  C obj = new C();
  obj.show();               // super class member function
  obj.display();                 // base class member function
  obj.show1();                 // own member function
 }
}
}
}
Output:
Welcome to the world of c#
Hello
How are You ?

 

Multiple inheritance using Interfaces

 

ஒரு கிளாஸ் ஆனது ஒன்றுக்கு மேற்பட்ட கிளாஸ்களை இன்ஹெரிட்
 செய்ய இயலாது. இதை தீர்வு செய்ய இன்டெர்ஃபேஸ்கள் பயன்படுகின்றன. 





using System;
namespace Application
{
   class Shape 
   {
      public void setSide(int s)
      {
         side = s;
      }
     protected int side;
    }
   // Base class Cost
   public interface Cost 
   {
      int getCost(int area);
   }
   // Derived class
   class square : Shape, Cost
   {
      public int getArea()
      {
         return (side * side);
      }
      public int getCost(int area)
      {
         return area * 10;
      }
   }
   class Square
   {
      static void Main(string[] args)
      {
         square sq = new square();
         int area;
         sq.setSide(5);
         area = sq.getArea();
         
         // Print the area of the object.
         Console.WriteLine("The area is: {0}",  sq.getArea());
         Console.WriteLine("The cost is: {0}" , sq.getCost(area));
         Console.ReadKey();
      }
   }
}
Output:
The area is: 25
The cost is: 250


கவனத்தில் கொள்வதற்கு;
  1. C#  மல்டிபிள் இன்ஹெரிடன்ஸை ஆதரிப்பதில்லை. எனினும் இன்டெர்ஃபேஸ் மூலம் மல்டிபிள் இன்ஹெரிடண்ஸ் சாத்தியமாகின்றது.
  2. பேஸ் கிளாஸின் பிரைவேட் மெம்பர்களை டெரிவ்டு கிளாஸில் ஆக்ஸஸ் செய்ய இயலாது.
முத்து கார்த்திகேயன், மதுரை.
ads Udanz

No comments:

Post a Comment