Sunday, 11 February 2018

Return Multiple values from a function in C#

In C#, There are 4 ways to return multiple values from a C# function.
  • Using KeyValue pair
  • Using ref/out parameters
  • Using Struct or Class
  • Using Tuple
Method_Returns_Multiple_Values

1. Using KeyValue pair:


class Program
    {
        static void Main(string[] args)
        {
            int int1 = 15;
            int int2 = 25;
            var result = Add_Multiply(int1, int2);
            Console.WriteLine(result.Key);
            Console.WriteLine(result.Value);
        }
        private static KeyValuePair<int, int> Add_Multiply(int int1, int int2)
        {
            var KeyValuePair = new KeyValuePair<int, int>(int1 + int2, int1 * int2);
            return KeyValuePair;
        }
    }

Output:

40
375

2.a. Using Ref Parameter:


 class Program
    {
        static void Main(string[] args)
        {
            int int1 = 15;
            int int2 = 25;
            int add = 0;
            int multiply = 0;
            Add_Multiply(int1, int2, ref add, ref multiply);
            Console.WriteLine(add);
            Console.WriteLine(multiply);
        }
        private static void Add_Multiply(int int1, int int2, ref int add, ref int multiply)
        {
            add = int1 + int2;
            multiply = int1 * int2;
        }
    }

40
375

2.b. Using Out Parameter:

class Program
    {
        static void Main(string[] args)
        {
            int int1 = 15;
            int int2 = 25;
            int add = 0;
            int multiply = 0;
            Add_Multiply(int1, int2, out add, out multiply);
            Console.WriteLine(add);
            Console.WriteLine(multiply);
        }
        private static void Add_Multiply(int int1, int int2, out int add, out int multiply)
        {
            add = int1 + int2;
            multiply = int1 * int2;
        }
    }

Output:

40
375

3.a. Using Struct:

class Program
    {
        struct Result
        {
            public int add;
            public int multiply;
        }
        static void Main(string[] args)
        {
            int int1 = 53;
            int int2 = 17;
            var result = Add_Multiply(int1, int2);
            Console.WriteLine(result.add);
            Console.WriteLine(result.multiply);
        }
        private static Result Add_Multiply(int int1, int int2)
        {
            var result = new Result
            {
                add = int1 + int2,
                multiply = int1 * int2
            };
            return result;
        }
    }

Output:

70
901

3.b. Using Class:


struct Result
        {
            public int add;
            public int multiply;
        }
        static void Main(string[] args)
        {
            int int1 = 13;
            int int2 = 27;
            var result = Add_Multiply(int1, int2);
            Console.WriteLine(result.add);
            Console.WriteLine(result.multiply);
        }
        private static Result Add_Multiply(int int1, int int2)
        {
            var result = new Result
            {
                add = int1 + int2,
                multiply = int1 * int2
            };
            return result;
        }
    }

Output:

40
351

4. Using Tuple:


class Program
{
        static void Main(string[] args)
        {
            int int1 = 25;
            int int2 = 28;
            var result = Add_Multiply(int1, int2);
            Console.WriteLine(result.Item1);
            Console.WriteLine(result.Item2);
        }
        private static Tuple<int, int> Add_Multiply(int int1, int int2)
        {
            var tuple = new Tuple<int, int>(int1 + int2, int1 * int2);
            return tuple;
        }

}

No comments:

Post a Comment

React Hooks - custom Hook

  v CustomHook Ø React allows us to create our own hook which is known as custom hook. Example – 1 localStorage Demo Step-1 Create ...