static void Main(string[] args)
{
//值參數、引用參數和輸出參數
//輸出參數和引用參數的區别
//(1)未初始化的變量用ref是不合法的,out合法
//(2)函數調用out參數,必須把它當作尚未賦值(既可以把已賦值的變量當做out參數,但
//存儲在該變量中(zhōng)的值放(fàng)在方法執行時會丢失)
//out和ref必須在調用或執行方法的時候聲明
//值參數:傳值給方法,方法中(zhōng)的參數修改不影響參數列表(在方法内部計算後num=100,方法外(wài)部的num依然等于10)
int num = 10;
Console.WriteLine(num);//輸出結果是10
Square(num);
Console.WriteLine(num);//輸出結果是10
//引用參數:ref關鍵字指定,調用函數變量必須非常量,調用變量必須初始化
Square(ref num);//經過計算輸出結果是100
Console.WriteLine(num);//由于在方法Square中(zhōng)num 是引用參數經過計算後此時num的值是100
//輸出參數,有多個返回值,需要先聲明,不用賦初值。
int MaxNumIndex1;
int[] nums = new int[] { 1,2,3,4,50,60,80,90,1,2,5,6,7};
Console.WriteLine("數組nums的中(zhōng)的最大(dà)值是:{0},它的索引值爲:{1}", MaxNum(nums, out MaxNumIndex1), MaxNumIndex1);
//有兩個返回值MaxNum 和MaxNumIndex1,也可以定義多個out參數如:static int MaxNum(int[] nums, out int MaxNumIndex, out int MaxNumIndex2)
Console.ReadKey();
}
//值參數求平方
static void Square(int num)
{
num *= num;
Console.WriteLine(num);
}
//引用參數求平方
static void Square(ref int num)
{
num *= num;
Console.WriteLine(num);
}
//接收兩個參數一(yī)個是數組 一(yī)個是輸出參數,求輸出中(zhōng)最大(dà)值和最大(dà)值的索引
static int MaxNum(int[] nums,out int MaxNumIndex)
{
int MaxNum = nums[0];
MaxNumIndex = 0;
for (int i = 0; i < nums.Length; i++)
{
if (MaxNum < nums[i])
{
MaxNum = nums[i];
MaxNumIndex=i;
}
}
return MaxNum;
}