Return Multiple values from a function in C#

In this article, we will discusss, how to 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

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, refadd, refmultiply);
            Console.WriteLine(add);
            Console.WriteLine(multiply);
        }
 
        private static void Add_Multiply(int int1, int int2, refint add, refint multiply)
        {
            add = int1 + int2;
            multiply = int1 * int2;
        }
 
    }

Output:

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, outadd, outmultiply);
            Console.WriteLine(add);
            Console.WriteLine(multiply);
        }
 
        private static void Add_Multiply(int int1, int int2, outint add, outint 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 ResultAdd_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 ResultAdd_Multiply(int int1, int int2)
        {
            var result = new Result
            {
                add = int1 + int2,
                multiply = int1 * int2
            };
            return result;
        }
    }

Output:

40

351

4. Using Tuples

You can understand Tupleshere.

Let’s look at below example to return multiple values from a C# function 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;
        }
 
    }

Output:

53

700

Thanks for visiting !!

© 2016,admin. All rights reserved.

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章