Open In App

Local Function in C#

The local function feature is introduced in C# 7.0. It allows you to declare a method inside the body of an already defined method. Or in other words, we can say that a local function is a private function of a function whose scope is limited to that function in which it is created. The type of local function is similar to the type of function in which it is defined. You can only call the local function from their container members.
Important Points: 
 

Example 1:
 






// C# program to illustrate local function
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
        // Local Function
        void AddValue(int a, int b)
        {
            Console.WriteLine("Value of a is: " + a);
            Console.WriteLine("Value of b is: " + b);
            Console.WriteLine("Sum of a and b is: {0}", a + b);
            Console.WriteLine();
        }
 
        // Calling Local function
        AddValue(20, 40);
        AddValue(40, 60);
    }
}

Output: 
 

Value of a is: 20
Value of b is: 40
Sum of a and b is: 60

Value of a is: 40
Value of b is: 60
Sum of a and b is: 100

Example 2:
 






// C# program to illustrate local function
// accessing the variable of the function
// in which they present
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
        // Variables of main method
        int x = 40;
        int y = 60;
 
        // Local Function
        void AddValue(int a, int b)
        {
            Console.WriteLine("Value of a is: " + a);
            Console.WriteLine("Value of b is: " + b);
            Console.WriteLine("Value of x is: " + x);
            Console.WriteLine("Value of y is: " + y);
            Console.WriteLine("Sum: {0}", a + b + x + y);
            Console.WriteLine();
        }
 
        // Calling Local function
        AddValue(50, 80);
        AddValue(79, 70);
    }
}

Output:
 

Value of a is: 50
Value of b is: 80
Value of x is: 40
Value of y is: 60
Sum: 230

Value of a is: 79
Value of b is: 70
Value of x is: 40
Value of y is: 60
Sum: 249

Advantages of local function: 
 




// C# program to illustrate how to
// create local generic function
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
 
        // Local Generic Function
        void MyMethod<MyValue>(MyValue value)
        {
            Console.WriteLine("Value is: " + value);
        }
 
        // Calling local generic function
        MyMethod<int>(123);
        MyMethod<string>("GeeksforGeeks");
        MyMethod<char>('G');
        MyMethod<double>(45453.5656);
    }
}

Value is: 123
Value is: GeeksforGeeks
Value is: G
Value is: 45453.5656




// C# program to illustrate how can we
// out parameter in local function
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
 
        // Local Function with out parameter
        void MyMethod(string str, out string s)
        {
            s = str + "for"
                + "Geeks";
        }
        string a = null;
 
        // Calling Local function
        MyMethod("Geeks", out a);
        Console.WriteLine(a);
    }
}

GeeksforGeeks




// C# program to illustrate how can we
// pass params in local function
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
 
        // Local Function
        // Using params
        void MyMethod(params string[] data)
        {
            for (int x = 0; x < data.Length; x++)
            {
                Console.WriteLine(data[x]);
            }
        }
        // Calling Local function
        MyMethod("Geeks", "gfg", "GeeksforGeeks", "123geeks");
    }
}

Geeks
gfg
GeeksforGeeks
123geeks

 


Article Tags :
C#