Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में मेथड पैरामीटर्स

पैरामीटर्स का उपयोग मेथड से डेटा पास करने और प्राप्त करने के लिए किया जाता है।

मेथड सिंटैक्स घटक

  • Access Specifier (एक्सेस स्पेसिफायर): दूसरे क्लास से वेरिएबल/मेथड की विजिबिलिटी निर्धारित करता है (public, private, protected, internal)
  • Return Type (रिटर्न टाइप): मेथड द्वारा लौटाए जाने वाले वैल्यू का डेटा टाइप। कोई वैल्यू न लौटाने पर void
  • Method Name (मेथड नाम): यूनिक आइडेंटिफायर, केस-सेंसिटिव, क्लास में अन्य आइडेंटिफायर के समान नहीं हो सकता
  • Parameter List (पैरामीटर लिस्ट): पैरेंथेसिस में संलग्न, मेथड से डेटा पास/प्राप्त करने के लिए उपयोग होता है। टाइप, ऑर्डर, संख्या को संदर्भित करता है। पैरामीटर्स वैकल्पिक हैं
  • Method Body (मेथड बॉडी): आवश्यक गतिविधि पूरी करने के लिए निर्देशों का सेट

उदाहरण: बेसिक मेथड विथ पैरामीटर्स

using System;

public class NumberManipulator {
    public int FindMax(int num1, int num2) {
        int result;
        if (num1 > num2)
            result = num1;
        else
            result = num2;
        return result;
    }
    
    public static void Main(string[] args) {
        int a = 500;
        int b = 750;
        int ret;
        NumberManipulator n = new NumberManipulator();
        ret = n.FindMax(a, b);
        Console.WriteLine("Max value = " + ret);
    }
}

आउटपुट

Max value = 750

पैरामीटर प्रकार

1. वैल्यू पैरामीटर्स (डिफ़ॉल्ट)

void Modify(int x) {
    x = 10;  // केवल लोकल कॉपी बदलती है
}

int val = 5;
Modify(val);
Console.WriteLine(val);  // 5 (अपरिवर्तित)

2. रेफरेंस पैरामीटर्स (ref)

void Modify(ref int x) {
    x = 10;  // मूल वेरिएबल बदलता है
}

int val = 5;
Modify(ref val);
Console.WriteLine(val);  // 10

3. आउट पैरामीटर्स (out)

void GetValues(out int x, out int y) {
    x = 10;  // असाइन करना आवश्यक
    y = 20;
}

GetValues(out int a, out int b);
Console.WriteLine($"{a}, {b}");  // 10, 20

4. पैरामीटर ऐरे (params)

int Sum(params int[] numbers) {
    int total = 0;
    foreach (int n in numbers) total += n;
    return total;
}

Console.WriteLine(Sum(1, 2, 3, 4));  // 10
Console.WriteLine(Sum(new[] { 1, 2, 3 }));  // 6

5. ऑप्शनल पैरामीटर्स (डिफ़ॉल्ट वैल्यूज)

void Greet(string name, string greeting = "Hello") {
    Console.WriteLine($"{greeting}, {name}!");
}

Greet("World");        // Hello, World!
Greet("World", "Hi");  // Hi, World!

6. नेम्ड आर्गुमेंट्स

void CreateUser(string name, int age = 18, bool isActive = true) { }

CreateUser("John");
CreateUser("Jane", age: 25);
CreateUser("Bob", isActive: false);

पैरामीटर पासिंग नियम

पैरामीटर प्रकारकॉल साइटमेथड में असाइनमेंटमूल प्रभावित?
वैल्यू (डिफ़ॉल्ट)valअनुमतनहीं
refref valअनुमतहाँ
outout valआवश्यकहाँ
in (C# 7.2+)in valनहीं (रीड-ओनली)नहीं

बेस्ट प्रैक्टिसेस

  • वैल्यू टाइप्स के लिए डिफ़ॉल्ट रूप से वैल्यू पैरामीटर्स उपयोग करें
  • मूल्य बदलने की आवश्यकता होने पर ref/out उपयोग करें
  • बड़े स्ट्रक्स के लिए in (रीड-ओनली रेफरेंस) पर विचार करें
  • params पैरामीटर अंतिम होना चाहिए
  • ऑप्शनल पैरामीटर्स अंत में होने चाहिए
  1. - C# में मेथड को पैरामीटर्स पास करना

    C# में मेथड पैरामीटर्स पास करना C# डिफ़ॉल्ट रूप से **वैल्यू द्वारा पासिंग (Pass by Value)** करता है: मेथड को आर्गुमेंट की **कॉपी** मिलती है। मूल वेरिएबल अपरिवर्तित रहता है। रेफरेंस टाइप्स के लिए, रेफरेंस की कॉपी पास होती है (ऑब्जेक्ट नहीं)। पैरामीटर पासिंग मोड्स मोडकीवर्डविवरणउदाहरण वैल्यू द्वा

  1. - C# मेथड में पैरामीटर ऐरे (param array) का उपयोग करके पैरामीटर्स कैसे पास करें?

    एक मेथड घोषित करते समय, आप पैरामीटर के रूप में पास किए गए तर्कों की संख्या के बारे में निश्चित नहीं होते। C# पैरामीटर ऐरे (या पैरामीटर सरणी) ऐसे समय में मदद करते हैं।यह है कि आप param का उपयोग कैसे कर सकते हैं:public int AddElements(params int[] arr) { }निम्नलिखित पूरा उदाहरण है:उदाहरणusing System;

  1. - रूबी के Array#zip में महारत: कुशल सरणी जोड़ी और तुलना

    मान लीजिए कि आप दो सरणियों की तुलना करना चाहते हैं, तत्व दर तत्व ताकि आप अंतर ढूंढ सकें। या शायद आप हर इंडेक्स पर सबसे बड़ी संख्या ढूंढना चाहते हैं, या आप केवल कुंजियों की सूची और मानों की सूची को मर्ज करके एक हैश बनाना चाहते हैं… …इसे करने का कठिन तरीका ऐसा कुछ दिखेगा। उदाहरण: a = [1,2,3,4,5] b =