namespace Out
{
class Program
{
static void Main(string[] args)
{
#region 宣告方式差異
// C# 7.0 前
int result1;
OutMethod(10, out result1);
// C# 7.0 開始
OutMethod(10, out int result2);
#endregion
OutMethod(10, out int result3);
Console.WriteLine(result3);
OutMethod(out int result4, 20);
Console.WriteLine(result4);
int input = 11;
Method_ReturnMultiResult(input, out int inputX2, out bool IsOdd);
Console.WriteLine($"{input}-{inputX2}-{IsOdd}");
var result6 = Method_ReturnMultiResult(22);
Console.WriteLine($"{result6.input}-{result6.inputX2}-{result6.IsOdd}");
}
#region out 參數位置
// MS 函數大多把 out 寫在後方
private static void OutMethod(int i, out int result)
{
result = i * i;
}
// 同事偏好把 out 放在前方
private static void OutMethod(out int result, int i)
{
result = i * i;
}
#endregion
#region 回傳多值
// 利用 Out 回傳多值
private static void Method_ReturnMultiResult(int i, out int inputX2, out bool IsOdd)
{
inputX2 = i * 2;
IsOdd = (i % 2 == 0 ? false : true);
}
// C# 7.0 開始有 ValueTuple 後,大多利用它來回傳多值
private static (int input, int inputX2, bool IsOdd) Method_ReturnMultiResult(int i)
{
return (i, i * 2, i % 2 == 0 ? false : true);
}
#endregion
}
}
星期四, 8月 01, 2019
[C#] 參數 - Out
Out 參數簡易筆記
沒有留言:
張貼留言