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
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
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
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
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
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