Updated June 16, 2023
Introduction to C# Call By Reference
The reference parameter is used to refer to the memory location of a variable. Unlike value parameters, which require a new storage location for the parameter, reference parameters represent the same memory location as the original parameters passed as arguments to the method. In C#, we use the keyword “ref” to declare reference parameters. When we pass reference arguments as parameters to a function in C#, we pass the reference to the memory location instead of the original value. We refer to this concept as “call by reference” in C#.
Syntax
ref data_typevariable_name
Where data_type is the data type of the variable with variable_name.
Working of C# Call By Reference
- Whenever there is a need to call a function that accepts arguments and if we want to pass the reference address of the variable in the memory location as an argument to the function, we use call by reference in C#.
- A reference parameter is a parameter that receives the address of a variable in memory.
Examples
Given below are the examples mentioned:
Example #1
C# program to demonstrate call by reference in which we calculate the square of a number and display the values before calling the function by reference and after the function is called.
Code:
using System;
//a namespace called program1 is defined
namespace program1
{
//a class called check is defined
class check
{
//a function is defined which takes reference variable as an argument
public void displaypower(ref double value)
{
//the square of the passed value is found using pow method
double power = Math.Pow(value,2);
//The resulting value is added to the value passed as reference
value = value + power;
Console.WriteLine("Value when the control is inside the function "+value);
}
//main method is called
static void Main(string[] args)
{
//a double variable is defined
double value = 5;
//an instance of the check class is defined which consists of the function taking reference parameter as an argument
check check1 = new check();
Console.WriteLine("Value before the function is called "+value);
//a function is called by reference
check1.displaypower(ref value);
Console.WriteLine("The value of the variable remains the same as inside the function because we are calling the function by reference " + value);
}
}
}
Output:
Explanation:
- In the given program, we define the namespace “program1”. Inside this namespace, we have a class named “check” that contains a function. This function takes a reference variable as an argument.
- The function takes the value passed as a reference and calculates the square of the value and adds it to the actual value, and then displays the resulting value.
Example #2
C# program to demonstrate call by reference in which we convert the given string in small letters to capital letters by calling the function by reference and passing the string in small letters as a reference parameter.
Code:
using System;
//a namespace called program1 is defined
namespace program1
{
//a class called check is defined
class check
{
//a function is defined which takes reference variable as an argument
public void displayupper(ref string value)
{
//ToUpper method is used to convert the string from small letters to capital letters
value = value.ToUpper();
Console.WriteLine("Value when the control is inside the function "+value);
}
//main method is called
static void Main(string[] args)
{
//a double variable is defined
string value = "shobha";
//an instance of the check class is defined which consists of the function taking reference parameter as an argument
check check1 = new check();
Console.WriteLine("Value before the function is called "+value);
//a function is called by reference
check1.displayupper(ref value);
Console.WriteLine("The value of the variable remains the same as inside the function because we are calling the function by reference " + value);
}
}
}
Output:
Explanation:
- In the above program, I define a namespace called “program1”. Then, I define a class called “check” within this namespace. Inside the “check” class, I define a function that takes a reference variable as an argument.
- The function takes the value passed as a reference and converts the given string in small letters to capital letters using ToUpper() method.
Recommended Articles
This is a guide to C# Call By Reference. Here we discuss the introduction with working and programming examples. You may also have a look at the following articles to learn more –