Complete C# Tutorial

Reference Type Parameter in C# - Learn with Example

👋 Introduction

Ever asked a friend to edit a shared Google Doc? 📝 When they change something, you see it right away because you both are working on the same document. That’s exactly how a reference type Parameter in C# works—the method edits the original variable directly, just like your friend editing the same document!

Similarly, in programming, sometimes you want to send a variable to a method and let that method make changes directly. That’s where the reference type Parameter in C# comes in!

Struggling to understand how variables can change outside methods? Don’t worry—you’re not alone! I’m here to walk you through this step-by-step. It’s easier than you think, and I promise, you’ll have fun along the way.

Ready? Let’s dive in! 🏊‍♀️

🔑 What is a Reference Type Parameter in C#?

When you pass a reference type Parameter in C# to a method, you’re sending a reference (or address) to the actual variable. Any changes made inside the method will reflect outside.

👉 Why should you care?

Because sometimes you want methods to directly modify your variables—like updating a user profile, changing settings, or adjusting prices!

📝 Syntax

Here’s how you use it:

				
					void MethodName(ref DataType parameterName)
{
    // Code that changes the parameter
}
				
			
  • Use the ref keyword both when declaring and calling the method.
  • Without ref, the changes wouldn’t reflect outside the method.

🚀 Example 1: Simple Demonstration

				
					using System;

class Program
{
    static void UpdateValue(ref int number)
    {
        number += 10;  // Adds 10 to the number
    }

    static void Main()
    {
        int value = 5;
        Console.WriteLine("Before method call: " + value);  // Output: 5

        UpdateValue(ref value);  // Pass by reference

        Console.WriteLine("After method call: " + value);   // Output: 15
    }
}
				
			

🧐 Explanation:

  1. value starts as 5.
  2. We pass it to UpdateValue using ref.
  3. Inside the method, number += 10; adds 10 to the original variable.
  4. After the call, value becomes 15.

Without ref, the output would stay 5.

🌍 Example 2: Real-World Scenario – Shopping Cart Update

Imagine you’re building a shopping cart system. You want to apply a discount to the total price.

				
					using System;

class Program
{
    static void ApplyDiscount(ref double price)
    {
        price *= 0.9;  // 10% discount
    }

    static void Main()
    {
        double totalPrice = 100;
        Console.WriteLine("Total Price Before Discount: $" + totalPrice);  // $100

        ApplyDiscount(ref totalPrice);  

        Console.WriteLine("Total Price After Discount: $" + totalPrice);   // $90
    }
}
				
			

📝 Explanation:

  1. 💵 Started with $100.
  2. 💥 Applied a 10% discount using ref.
  3. 🎉 New total is $90.

See how easy that was? You passed the variable by reference and saved money (literally and figuratively 😉)!

🚗 Example 3: Real-World Scenario – Fuel Refill Tracker

				
					using System;

class Program
{
    static void RefillFuel(ref int fuelLevel)
    {
        fuelLevel = 100;  // Tank is now full
    }

    static void Main()
    {
        int fuel = 40;
        Console.WriteLine("Fuel Level Before Refill: " + fuel + "%");  // 40%

        RefillFuel(ref fuel);  

        Console.WriteLine("Fuel Level After Refill: " + fuel + "%");   // 100%
    }
}
				
			

🚙 Explanation:

  1. Fuel was at 40%. We used ref to refill it. Now, the tank is full at 100%!

🏠 Example 4: Real-World Scenario – Change User Name

				
					using System;

class Program
{
    static void ChangeName(ref string name)
    {
        name = "Steven";  // New name assigned
    }

    static void Main()
    {
        string userName = "Alex";
        Console.WriteLine("Name Before Change: " + userName);  // Alex

        ChangeName(ref userName);  

        Console.WriteLine("Name After Change: " + userName);   // Steven
    }
}
				
			

🔑 Explanation:

  1. Alex went in. Steven came out. 🧙‍♂️ Magic? Nope, just the C# reference type Parameter at work!

🎯 Conclusion

High five! 🙌 You’ve just learned how the reference type Parameter in C# lets you modify variables directly inside methods. Whether you’re adjusting prices, refilling fuel, or changing names, ref makes it quick and efficient.

Still wondering if you got it right? Try changing the examples or creating your own. Make it fun! And hey, mistakes are okay—they’re just stepping stones to success. You’ve got this! 🚀

 

🧭 Next What?

Feeling pumped? Awesome! In the next chapter, you’ll explore Output type parameters—a super cool way to return multiple values from a method. Trust me, you won’t want to miss it! 😉

Leave a Comment

Share this Doc

Reference type parameter

Or copy link