কম্পিউটার

C# এ রেফ এবং আউট প্যারামিটারের মধ্যে পার্থক্য কী?


রেফ প্যারামিটার

একটি রেফারেন্স প্যারামিটার হল একটি পরিবর্তনশীলের মেমরি অবস্থানের একটি রেফারেন্স। যখন আপনি রেফারেন্স দ্বারা প্যারামিটারগুলি পাস করেন, মান প্যারামিটারের বিপরীতে, এই প্যারামিটারগুলির জন্য একটি নতুন স্টোরেজ অবস্থান তৈরি করা হয় না৷

আপনি রেফ কীওয়ার্ড ব্যবহার করে রেফারেন্স প্যারামিটার ঘোষণা করতে পারেন। নিম্নলিখিত একটি উদাহরণ -

উদাহরণ

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();

         /* local variable definition */
         int a = 100;
         int b = 200;
     
         Console.WriteLine("Before swap, value of a : {0}", a);
         Console.WriteLine("Before swap, value of b : {0}", b);

         /* calling a function to swap the values */
         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

আউট প্যারামিটার

একটি রিটার্ন স্টেটমেন্ট একটি ফাংশন থেকে শুধুমাত্র একটি মান ফেরত দেওয়ার জন্য ব্যবহার করা যেতে পারে। যাইহোক, প্যারামিটার ব্যবহার করে, আপনি একটি ফাংশন থেকে দুটি মান ফেরত দিতে পারেন।

নিম্নলিখিত একটি উদাহরণ -

উদাহরণ

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();

         /* local variable definition */
         int a = 150;

         Console.WriteLine("Before method call, value of a : {0}", a);

         /* calling a function to get the value */
         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

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

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

  3. Wi-Fi 6 এবং 5G নেটওয়ার্কের মধ্যে পার্থক্য কী?

  4. Windows 10 এবং Windows 11 এর মধ্যে পার্থক্য কি?