Friday, October 18, 2019

சி ஷார்ப்பில் மெத்தட்கள்.



மெத்தட் ஆனது வேறு மொழிகளில் ஃபங்க்சன் என நாம் குறிப்பிடுவதாகும்
மெத்தட்களை பயன்படுத்தி ஒரு தடவை மட்டும் டிஃபைன் செய்து விட்டு நிறைய தடவை அழைத்துக் கொள்ளலாம்.
இதனால் அப்ளிகேசன்களை நிர்வாகிப்பது எளிதாகின்றது.

இதில் இன்ஸ்டன்ஸ் மெத்தட், ஸ்டேடிக் மெத்தட் என்று இரு வ்கை உண்டு.
ஸ்டேட்டிக் மாடிஃபையர் உடன் பயன்படுத்தும் மெத்தட் ஸ்டேட்டிக் மெத்தட் ஆனது இதை நேரடியாக கிளாஸ்நேம்.மெத்தட்நேம் என ஆக்சஸ் செய்யலாம்.
ஸ்டேட்டிக் மாடிஃபையர் இல்லாத மெத்தட் இன்ஸ்டன்ஸ் மெத்தட் ஆகும். இதை அழைப்பதற்கு முதலில் கிளாஸிற்க்கு ஒரு ஆப்ஜெக்ட் உருவாக்கி  ஆப்ஜெக்ட்நேம்.மெத்தட்நேம் பயன்படுத்தி அழைத்துக் கொள்ளலாம்.
சான்று நிரல்.
using System;


namespace Methods1
{
    class Program
    {
       public static void Main(string[] args)
        {
            Program.Evennumbers(10);
            Program p = new Program();
            int sum=p.Add(20, 30);
            Console.WriteLine("total=" + sum);
            Console.ReadLine();

        }
       public int Add(int fn, int sn)
       {
           return fn + sn;
       }

       public static  void Evennumbers(int target)
       {
           int start = 0;
           while (start <=target )
           {
               Console.WriteLine(start);
               start += 2;
           }
         
       }
    }
}
மேலே உள்ள நிரலில் Add என்ற மெத்தட் இன்ஸ்டன்ஸ் மெத்தட். எனவே இது ஆப்ஜெக்ட் உருவாக்கி அழைக்கப்படுகின்றது.இந்த மெத்தட்   ஆனது இதற்கு அனுப்பப்படுன் இரண்டு பராமீட்டர்களை கூட்டி அந்த மதிப்பை ரிடன் செய்கின்றது. எனவே இதன் ரிடர்ன் டைப் int எனக் குறிப்பிடப்பட்டுள்ளது.
Evennumbers என்ற மெத்தட் ஸ்டேட்டிக் மெத்தட் ஆகும். இதன் ரிடர்ன் டைப் void அதாவது இந்த மெத்தட் எந்த மதிப்பையும் ரிடர்ன் செய்யாது.இதற்கு target என்ற இன்ட் டைப் பராமீட்டர் உள்ளது. இந்த மெத்தட் ஆனது 0 முதல் target வரை உள்ள இரட்டை எண்களை பிரிண்ட் செய்கின்றது.

இது ஸ்டேட்டிக் மெத்தட் ஆன படியால் நேரடியாக கிளாஸ்நேம் .மெத்தட்நேம் குறிப்பிட்டு அழைக்கப்படுகின்றது.
மெத்தட் ஆனது கீழே குறிப்பிட்டுள்ள 4 வகை பாராமீட்டர்களை கொண்டுள்ளது.
1.     Value parameter
2.     Ref parameter
3.     Out parameter
4.     Params parameter.
முதலில் value பராமீட்டர்:
பொதுவாக நாம் மெத்தடுக்கு அனுப்பபடும் பராமீட்டர் வேல்யூ பாராமீட்டர் ஆகும்.
சான்று நிரல்:
using System;


namespace methodvalpara
{
    class Program
    {
        static void Main(string[] args)
        {
            int i=0;
            Program.change ( i);
            Console.WriteLine(i);
            Console.ReadLine();
        }
        public static void change( int j)
        {
            j = 100;
        }
    }
}

வெளியீடு:
0
மேலே உள்ள நிரலில் change என்ற மெத்தட் உள்ளது.இது j என்ற இண்ட் டைப் பாராமீட்டரை ஏற்கின்றது. உள்ளே j வின் மதிப்பு 100 என்று மாற்றப்படுகின்றது.
Main மெத்தடில் I யின் மதிப்பு 0 என மதிப்பிருத்தப்பட்டு அது change என்ற மெத்தடுக்கு அனுப்பபடுகின்றது. Change மெத்தடில் jயின் மதிப்பு 100 என மாறினாலும் I யின் மதிப்பு 100 எனவே இருக்கும் ஏனெனில் I, j இரண்டும் வெவ்வேறு மெமரி லொகேசன்
எனவே ஒன்றில் மாற்றப்படும் டேட்டா மற்றொன்றில் மாற்றத்தை ஏற்படுத்தாது.
Ref type parameter:
இதுவே ref டைப்பில் பாராமீட்டரை அனுப்பினால் மெத்தடில் உள்ள பாராமீட்இல்டரில் ஏற்படும் மாற்றம் அதன் ஆர்க்கியுமென்டில் மாற்றத்தை ஏற்படுத்தும்.
சான்று நிரல்:
using System;


namespace methodvalpara
{
    class Program
    {
        static void Main(string[] args)
        {
            int i=0;
            Program.change (ref i);
            Console.WriteLine(i);
            Console.ReadLine();
        }
        public static void change(ref int j)
        {
            j = 100;
        }
    }
}
வெளியீடு:
100.
மேலே உள்ள மெத்தட் அழைக்கப்படும் இடத்திலும் அது டிஃபைன் செய்யப்படும் இடத்திலும் ref என்ற கீவேர்டு பயன்படுத்தப்பட்டுள்ளதை காண்கின்றோம்.
இதில் 0 என்ற டேட்டா உள்ளது இதை I என்ற வேரியபிள் பாயிண்ட் செய்கின்றது. அது ref டைப்பாக j என்ற பெயரில் பெறப்படும் பொழுது  j யும் அதே 0 என்ற டேட்டாவை பாயிண்ட் செய்கின்றது. எனவே ஒன்றில் ஏற்படும் மாற்றம் மற்றொன்றில் ரிஃப்ளக்ட் ஆகும்.
Out parameter.
பொதுவாக ஒரு மெத்தட் ஆனது ஒரே ஒரு மதிப்பை ,மட்டுமே ரிடர்ன் செய்ய இயலும் . ஒன்றுக்கு மேற்பட்ட மதிப்பை ரிடர்ன் செய்ய out கீவேர்டு பயன்படுகின்றது.
சான்று நிரல்:
using System;


namespace methodoutparam
{
    class Program
    {
        static void Main(string[] args)
        {
            int total = 0;
            int product = 0;
            Program.calc(10, 20, out total, out product);
            Console.WriteLine("sum=" + total);
            Console.WriteLine("product=" + product);
            Console.ReadLine();

        }
        public static void calc(int a, int b,out int sum,out int product)
        {
            sum = a + b;
            product = a * b;
        }
    }
}
மேலே உள்ள நிரலில் calc என்ற மெத்தட் ஆனது a,b என்று இரு பாராமீட்டர்களை ஏற்கின்றது.
உள்ளே இரண்டும் கூட்டப்பட்டும் sum என்ற வேரியபிளிலும், பெருக்கப்பப்பட்டு product என்ற வேரியபிளிலும் மதிப்பிருத்தப்படுகின்றது. முடிவில் இவ்விரண்டும் ஃபங்க்சனால் வெளியீடு செய்யப்படுகின்றது. ஏனெனில் இவை இரண்டும் out என்ற கீவேர்டு கொண்டு டிஃபைன் செய்யப்பட்டுள்ளது.
Params parameters:
ஒன்றுக்கு மேற்பட்ட எலிமெண்டுகள் அல்லது ஒரு அர்ரே பாஸ் செய்ய params என்ற கீவேர்டு பயன்படுகின்றது.
சான்று நிரல்.
using System;


namespace Methodparamspara
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = new int[3];
            numbers[0] = 123;
            numbers[1] = 145;
            numbers[2] = 567;
            result(numbers);
          
            result(12, 56, 78, 89, 97);
            Console.ReadLine();
        }
        public static void result(params int[] n)
        {
            Console.WriteLine("length is"+n.Length);
            foreach (int i in n)
            {
                Console.WriteLine(i);
            }
        }
    }
}

வெளியெடு:
length is3
123
145
567
length is5
12
56
78
89
97
மேலே உள்ள நிரலில் முதலில் ஒரு அர்ரேயும் இரண்டாவதாக ஒன்றுக்கு மேற்பட்ட எலிமெண்டுகளும் அனுப்பப்படுகின்றது.
இதற்கு params என்ற கீவேர்டு பயன்படுகின்றது.
நன்றி.
முத்து கார்த்திகேயன்,மதுரை.

ads Udanz

No comments:

Post a Comment