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 –
- C# Dictionary
- DataReader C#
- IEnumerable C#
- C# System.IO
The above is the detailed content of C# Call By Reference. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Guide to Active Directory with C#. Here we discuss the introduction and how Active Directory works in C# along with the syntax and example.

Guide to Random Number Generator in C#. Here we discuss how Random Number Generator work, concept of pseudo-random and secure numbers.

Guide to C# Data Grid View. Here we discuss the examples of how a data grid view can be loaded and exported from the SQL database or an excel file.

Guide to Factorial in C#. Here we discuss the introduction to factorial in c# along with different examples and code implementation.

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.

Guide to Patterns in C#. Here we discuss the introduction and top 3 types of Patterns in C# along with its examples and code implementation.

Guide to Prime Numbers in C#. Here we discuss the introduction and examples of prime numbers in c# along with code implementation.

There are several ways to modify XML formats: manually editing with a text editor such as Notepad; automatically formatting with online or desktop XML formatting tools such as XMLbeautifier; define conversion rules using XML conversion tools such as XSLT; or parse and operate using programming languages such as Python. Be careful when modifying and back up the original files.
