কম্পিউটার টিউটোরিয়াল

C#-এ ref এবং out প্যারামিটার এর পার্থক্য

Ref প্যারামিটার (Ref Parameter)

একটি রেফারেন্স প্যারামিটার একটি ভেরিয়েবলের মেমোরি লোকেশনের রেফারেন্স। যখন আপনি প্যারামিটার বাই রেফারেন্স (by reference) পাস করেন, তবে ভ্যালু প্যারামিটারের বিপরীতে, এই প্যারামিটারগুলোর জন্য কোনো নতুন স্টোরেজ লোকেশন তৈরি হয় না।

রেফারেন্স প্যারামিটার ডিক্লেয়ার করতে ref কীওয়ার্ড ব্যবহার করুন।

উদাহরণ: ref প্যারামিটার

using System; 
namespace CalculatorApplication { 
    class NumberManipulator { 
        public void swap(ref int x, ref int y) { 
            int temp; 
            temp = x; /* save the value of x */ 
            x = y; /* put y into x */ 
            y = temp; /* put temp into y */ 
        } 
        static void Main(string[] args) { 
            NumberManipulator n = new NumberManipulator(); 
            int a = 100; 
            int b = 200; 
            Console.WriteLine("Before swap, value of a : {0}", a); 
            Console.WriteLine("Before swap, value of b : {0}", b); 
            n.swap(ref a, ref b); 
            Console.WriteLine("After swap, value of a : {0}", a); 
            Console.WriteLine("After swap, value of b : {0}", b); 
            Console.ReadLine(); 
        } 
    } 
}

আউটপুট

Before swap, value of a : 100 Before swap, value of b : 200 After swap, value of a : 200 After swap, value of b : 100

Out প্যারামিটার (Out Parameter)

একটি return স্টেটমেন্ট শুধু একটি মান ফাংশন থেকে রিটার্ন করতে পারে। কিন্তু out প্যারামিটার ব্যবহার করে আপনি একটি ফাংশন থেকে দুটি মান রিটার্ন করতে পারেন।

উদাহরণ: out প্যারামিটার

using System; 
namespace CalculatorApplication { 
    class NumberManipulator { 
        public void getValue(out int x) { 
            int temp = 10; 
            x = temp; 
        } 
        static void Main(string[] args) { 
            NumberManipulator n = new NumberManipulator(); 
            int a = 150; 
            Console.WriteLine("Before method call, value of a : {0}", a); 
            n.getValue(out a); 
            Console.WriteLine("After method call, value of a : {0}", a); 
            Console.ReadLine(); 
        } 
    } 
}

আউটপুট

Before method call, value of a : 150 After method call, value of a : 10

মূল পার্থক্য: ref-এ ভেরিয়েবলটি কল করার আগে ইনিশিয়ালাইজড থাকতে হয়, কিন্তু out-এ ইনিশিয়ালাইজড থাকতে হয় না; মেথডটির ভিতরে সেটি অবশ্যই অ্যাসাইন করা হয়।

  1. জাভাতে JScrollBar এবং JScrollPane-এর মধ্যে পার্থক্য কী?

  2. জাভাতে JComboBox এবং JList-এর মধ্যে পার্থক্য কী?

  3. ওয়াই-ফাই ৬ এবং ৫জি নেটওয়ার্কের মধ্যে পার্থক্য কী?

  4. উইন্ডোজ ১০ বনাম উইন্ডোজ ১১: মূল পার্থক্য ও আপনার জন্য কোনটি সঠিক