C# Methods

Introduction to C# Methods

एक method कई statements का set होता है जिसे एक unique नाम के द्वारा define किया जाता है। एक Method को कोई particular task या action perform करने के लिए create किया जाता है।

Method को create करने के बाद जब भी आपको वह task या action perform करने की आवश्यकता होती है आप method के नाम द्वारा method को call करते है। जैसे ही method call होता है तो उसके सभी statements execute हो जाते है।

Methods बहुत ही उपयोगी होते है। Methods की मदद से आप अलग अलग tasks को seperate units के रूप में define कर पाते है। ऐसा करने से आप code को आसानी से manage कर पाते है और आपके program की readability भी बढ़ती है।

Methods के द्वारा code reusable हो जाता है। एक बार method create करने के बाद आप उसे program में कँही भी और कितनी भी बार call कर सकते है। ऐसा होने से आपको उस task को perform करने के लिए वही code बार बार नहीं लिखना पड़ता है।

Methods input->process->output के model पर कार्य करते है। Methods को आप किसी प्रकार का data (parameters/arguments) pass कर सकते है, method की body में उस data को process कर सकते है और process करने के बाद उस data को return भी कर सकते है।

Methods की input लेने और process करके output return करने की capability ऐच्छिक है। यह अनिवार्य नहीं है की हर method input ले या output return करे। यह capability आप अपनी आवश्यकतानुसार प्रयोग करते है।

C# में आप दो प्रकार के methods create कर सकते है।

  • Static Methods – Static methods ऐसे methods होते है जो बिना class के objects के call किये जाते है। इन्हें static keyword द्वारा define किया जाता है और class के नाम द्वारा access किया जाता है।
  • Instance Methods – Instance methods ऐसे methods होते है जो जो classes के objects द्वारा access किये जाते है। इन्हें define करने के लिए आपको किसी प्रकार के special keyword की आवश्यकता नहीं होती है।

C# में methods create करना और use करना आगे के sections में बताया जा रहा है।

Syntax of C# Methods

C# में methods create करने का general syntax निचे दिया जा रहा है।

access-modifier optional-modifier return-type method-name(parameter-list)
{
    //Method code
   //return statement
}
  • access-modifier – Function declare करने के लिए सबसे पहले access modifier define किया जाता है। आप अपनी आवश्यकतानुसार कोई भी public, private, protected, internal आदि access modifiers use कर सकते है।
  • optional-modifier – Optional modifiers किसी function की बारे में extra information provide करते है। आप अपनी आवश्यकतानुसार कोई भी static, sealed, abstract आदि optional modifiers को use कर सकते है। Optional modifiers को use करना optional होता है।
  • return-type – Function का return type उस value का type होता है जो function output के रूप में return करेगा। यदि आपका function कोई value return नहीं करता है तो आप void define करते है।
  • method-name – Method का नाम पुरे program में unique होना चाहिए। इसी नाम द्वारा आप method को call करते है और use करते है।
  • parameters-list – Parameter list उन comma separated variables की list होती है जो method को input के रूप में pass किये जाते है। इन variables को इनके type के साथ define किया जाता है और comma से separate किया जाता है। Method की body में इन variables को process किया जाता है। इन variables के लिए values method को call करते समय pass की जाती है।
  • Method code – यह वह code होता है जो task perform करने के लिए लिखा जाता है।
  • return statement – यदि आपने method का return type void define किया है तो किसी प्रकार का return statement नहीं लिखा जाएगा। यदि return type कोई primitive type define किया गया है तो आपको उसी type की value या variable method में return statement द्वारा return करना होगी।

एक बार method create करने के बाद उसे use करने के लिए आप उसे program में call करते है। Method को call करने का general syntax निचे दिया जा रहा है।

method-name(argument-list);
  • method-name – Method को call करने के लिए method का नाम use किया जाता है।
  • argument-list – Argument list वो actual values होती है जो आप function को input के रूप में pass करते है। इन values को ही method process करता है। इन values के लिए variable आप method को create करते समय parameters के रूप में define करते है। Arguments के रूप में आप कोई value या variable pass कर सकते है। Function के argument का नाम और parameter का नाम same नहीं होना चाहिए।

Example of C# Methods

C# में methods create और call करना निचे उदाहरण द्वारा समझाया जा रहा है।

using System;

class myAddClass
{
     public int add(int a, int b) //Add method. It ads two numbers passed to it.
     {
            return a+b;
     }
}

class myFinalClass
{
     static void Main(string[] args)
    {
         myAddClass obj = new myAddClass();
         Console.WriteLine(“Sum of 2 and 3 is : {0}”,obj.add(2,3));  //Calling add()
         Console.WriteLine(“Sum of 4 and 3 is : {0}”,obj.add(4,3)); //Calling add()
         Console.WriteLine(“Sum of 10 and 17 is : {0}”,obj.add(10,17)); //Calling add()
    }
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Sum of 2 and 3 is : 5
Sum of 4 and 3 is : 7
Sum of 10 and 17 is : 27

Calling by Reference

मुख्यतः जब आप किसी method को call करते है तो उसमे argument के रूप में या तो कोई value pass करते है या ऐसा variable pass करते है जिसे value assign होती है। इस प्रकार जब आप method को call करते है तो वह call by value कहलाता है।

जब method को by value call किया जाता है तो actual variables में कोई change नहीं आता है। Actual variables की value parameter variables में copy हो जाती है और सभी processing उन्ही parameter variables के साथ perform की जाती है और result return कर दिया जाता है। Argument के रूप में pass की गयी value में कोई change नहीं आता है।

कई बार ऐसी situations भी आ सकती है जब आपको actual variables के साथ processing करनी हो और उनकी values में changes लाने हो। ऐसी situations के लिए C# में method को by reference call करने की facility provide की गयी है।

जब आप method को by reference call करते है तो method में उस variable की value के बजाय actual variable का reference pass किया जाता है। Pass किया गया reference actual variable को point करता है इसलिए जो भी changes variable के साथ किये जाते है वो actual variable के साथ ही perform होते है।

Method को reference के through call करने के लिए आपको parameters को ref keyword के साथ define करना होता है। इसके अलावा जब आप method को call करते समय argument define करते है तो उसके पहले भी ref keyword define करना आवश्यक होता है।

C# में method को by reference call करना निचे उदाहरण द्वारा समझाया जा रहा है।

using System;

class myClass
{
    public void increase(ref int a)
    {
         a = a+1;
    }
}

class myFinalClass
{
   static void Main(string[] args)
   {
        int Num = 5;
        myClass obj = new myClass();
        Console.WriteLine(“Num is : {0}”,Num);
        obj.increase(ref Num);
        Console.WriteLine(“Num is now : {0}”,Num);
   }
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Num is 5
Num is now 6

Async Methods

C# में async method बहुत ही उपयोगी feature है। इसके द्वारा आप method के execution को रोक कर पहले कोई दूसरा task perform कर सकते है। इसके बाद method को आगे execute कर सकते है। Async method को async modifier द्वारा define किया जाता है।

जब आप एक async method define करते है तो आप method के अंदर await operator use कर सकते है। जब compiler await operator को execute करता है तो program control caller के pass वापस चला जाता है।

इसके बाद method को तब तक execute नहीं किया जाता है जब तक की awaiting task complete नहीं हो जाता है। जैसे ही task complete होता है method का execution वापस शुरू हो जाता है।