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 ஆனது ஜெனரிக் ஆக இருக்கலாம்..
Points to Remember :
- Partial கீவேர்டு ஆனது ஒரு கிளாஸ், இன்டெர்ஃபேஸ், மெத்தட் ஆகியவற்றை தனித்தனி கிளாஸ் ஃபைல்களில் பிரித்தெழுத பயன்படுகின்றது.
- பார்சியம் மெத்தட் ஆனது அதை நடைமுறைப்ம் படுத்துவதற்கு முன்னால் அறிவிக்கப் பட வேண்டும்.
- பார்சியல் கிளாஸ்,பார்சியல் மெத்தட் எல்லாமே ஒரே ஆக்சஸ் மாடிஃபையர் கொண்டிருத்தல் வேண்டும்.
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
கவனத்தில் கொள்வதற்கு;
- C# மல்டிபிள் இன்ஹெரிடன்ஸை ஆதரிப்பதில்லை. எனினும் இன்டெர்ஃபேஸ் மூலம் மல்டிபிள் இன்ஹெரிடண்ஸ் சாத்தியமாகின்றது.
- பேஸ் கிளாஸின் பிரைவேட் மெம்பர்களை டெரிவ்டு கிளாஸில் ஆக்ஸஸ் செய்ய இயலாது.
முத்து கார்த்திகேயன், மதுரை.
No comments:
Post a Comment