Ref Keyword in C#

Introduction

 

Today, in this blog let's play around with one of the interesting and most useful concept in C#.

Question: What is ref keyword?

In simple terms "The ref keyword on a method parameter causes a method to refer to the same variable that was passed as an input parameter for the same method. The ref keyword is similar to Out keyword but ref requires that the variable be initialized before being passed."

Step 1: Create a new webform project

 

asp.net-web-forms-application.png
 

Step 2: The complete code of webform1.aspx looks like this

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="RefKeywordApp.WebForm1" %>

 

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Label ID="Label1" runat="server" Text="Ref Keyword in C#" Font-Bold="true" Font-Size="Large"

                            Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label6" runat="server" Text="Please Enter FirstNumber" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label2" runat="server" Text="Please Enter SecondNumber" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button1" runat="server" Text="Addition" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button2" runat="server" Text="Substraction" Font-Names="Verdana"

                            Width="213px" BackColor="Orange" Font-Bold="True" OnClick="Button2_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button3" runat="server" Text="Multiplication" Font-Names="Verdana"

                            Width="213px" BackColor="Orange" Font-Bold="True" OnClick="Button3_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button4" runat="server" Text="Division" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button4_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Label ID="Label5" runat="server" Font-Bold="true" Font-Names="Verdana"></asp:Label>

                    </td>

                </tr>

            </table>

        </div>

    </center>

    </form>

</body>

</html>
 

Step 3: The complete code of webform1.aspx.cs looks like this

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace RefKeywordApp

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            TextBox4.Focus();

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            double a = 0;

            double b = 0;

            if (string.IsNullOrEmpty(TextBox4.Text) || string.IsNullOrEmpty(TextBox1.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                Label5.Text = "Addition Result is: " + Add(ref a, ref b);

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox4.Text = string.Empty;

                TextBox1.Text = string.Empty;

            }

        }

        protected void Button2_Click(object sender, EventArgs e)

        {

            double a = 0;

            double b = 0;

            if (string.IsNullOrEmpty(TextBox4.Text) || string.IsNullOrEmpty(TextBox1.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                Label5.Text = "Substraction Result is: " + Sub(ref a, ref b);

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox4.Text = string.Empty;

                TextBox1.Text = string.Empty;

            }

        }

        protected void Button3_Click(object sender, EventArgs e)

        {

            double a = 0;

            double b = 0;

            if (string.IsNullOrEmpty(TextBox4.Text) || string.IsNullOrEmpty(TextBox1.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                Label5.Text = "Multiplication Result is: " + Mul(ref a, ref b);

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox4.Text = string.Empty;

                TextBox1.Text = string.Empty;

            }

        }

        protected void Button4_Click(object sender, EventArgs e)

        {

            double a = 0;

            double b = 0;

            if (string.IsNullOrEmpty(TextBox4.Text) || string.IsNullOrEmpty(TextBox1.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                Label5.Text = "Division Result is: " + Div(ref a, ref b);

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox4.Text = string.Empty;

                TextBox1.Text = string.Empty;

            }

        }

        protected double Add(ref double a, ref double b)

        {

            a = double.Parse(TextBox4.Text);

            b = double.Parse(TextBox1.Text);

            return a + b;

        }

        protected double Sub(ref double a, ref double b)

        {

            a = double.Parse(TextBox4.Text);

            b = double.Parse(TextBox1.Text);

            return a - b;

        }

        protected double Mul(ref double a, ref double b)

        {

            a = double.Parse(TextBox4.Text);

            b = double.Parse(TextBox1.Text);

            return a * b;

        }

        protected double Div(ref double a, ref double b)

        {

            a = double.Parse(TextBox4.Text);

            b = double.Parse(TextBox1.Text);

            return a / b;

        }

    }

}

 

 

Step 4: The output of the application looks like this

 

ref-keyword-in-csharp.jpg

 

Step 5: The addition operation output of the application looks like this

  csharp-ref-keyword.jpg

I hope this blog is useful for you

Next Recommended Reading Ref And Out KeyWords In C#

MVC Corporation
MVC Corporation is consulting and IT services based company.