Thursday, April 2, 2020

சி ஷார்ப் மெத்தட் ஓவர் லோடிங்க்.



மெத்தட் ஒவர் லோடிங்க் என்பது ஒரே கிளாசில் ஒன்றிறீகு மேற்பட்ட மெத்தட்கள் ஒரே பெயரில் இருப்பதாகும்.ஆனால் அந்த மெத்தடின் பாராமீட்டர்களின் எண்ணிக்கை அல்லது டேட்டா டைப் மாறவேண்டும்.
சான்றாக பின் வரும் மெத்தடை எடுத்துக் கொள்வோம்.
public static void Add(int n1, int n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
இப்பொழுது இன்னொரு Add மெத்தட் எழுதுவோம்.
public static void Add(int n1, int n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
        public static void Add(int n1, int n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
இப்பொழுது கம்பைலர் பிழை சுட்டும்.அதாவது Add என்ற பெயரில் ஒன்றுக்கு மேற்பட்ட மெத்தட்கள் இருப்பதாக பிழை சுட்டும்.
இப்பொழுது இரண்டாவது Add மெத்தடின் பாராமீட்டர் எண்ணிக்கையை கூடுவோம்.
public static void Add(int n1, int n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
        public static void Add(int n1, int n2,int n3)
        {
            Console.WriteLine("sum={0}", n1 + n2+n3);
        }
இப்பொழுது  முதல் Add மெத்தடில் இரண்டு int டைப் பாராமீட்டர்கள் உள்ளது.இரண்டாவது Add மெத்தடில் மூன்று int டைப் பாராமீட்டர்கள் உள்ளது. அதாவது இர்ண்டு  மெத்தட்களின் சிக்னேச்சர்களும் மாறுபடுகின்றது.எனவே இப்பொழுது பில்ட் செய்தால் கம்பைலர் பிழை சுட்டாது.
static void Main(string[] args)
        {
            Add(10, 20);
            Add(10, 20, 30);
        }
முதலில் உள்ள Add(10,20) ஆனது இரண்டு இன்ட் பாராமீட்டர் உள்ள மெத்தடை அழைக்கும்.
இரண்டாவது உள்ள Add(10,20,30) ஆனது மூன்றுஇன்ட்  பாராமீட்டர் உள்ள மெத்தடை அழைக்கும்.
பாராமீட்டர்களின் டேட்டா டைட்பை வைத்தும் மெத்தட்  ஓவர் லோடிங்க் செய்யலாம்.
சான்றாக பின் வருமாறு செய்யலாம்.
  class Program
    {
        static void Main(string[] args)
        {
            Add(10, 20);
            Add(10.0f, 20.2f);
        }
        public static void Add(int n1, int n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
        public static void Add(float n1,float n2)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }

    }
வெளியீடு:
sum=30
sum=30.2
Press any key to continue . . .
ரிடர்ன் டைப்பை மட்டும் மாற்றி மெத்தட் ஓவர் லோடிங்க்  செய்ய இயலாது ஏனெனில் நாம் மெத்தடை அழைக்கும் பொழுது ரிடர்ன் டைப்பை குறிப்பிடுவதில்லை.
மேலும் பாராமீட்டரின் வகையை வைத்து அதாவது(value, ref, out) போன்றவற்றை வைத்தும் மாற்றலாம்.
சான்றாக
public static void Add(int n1, int n2,int n3)
        {
            Console.WriteLine("sum={0}", n1 + n2);
        }
        public static void Add(int n1, int n2, out int n3)
        {
            Console.WriteLine("sum={0}", n1 + n2);
            n3 = n1 + n2;
        }
ஆனால் params டைப் வைத்து மெத்தட் ஓவர் லோடிங்க் செய்ய இயலாது.
இவ்வாறாக மெத்தட் ஓவர் லோடிங்க் சி ஷார்ப்பில் செயற்படுகின்றது.
நன்றி.
முத்து கார்த்திகேயன்,மதுரை..

To  learn computer courses in Madurai contact
contact: 91 9629329142
ads Udanz

No comments:

Post a Comment