C#基礎2——③方法的重載,out返回值,ref返回值

方法

一、導圖
在這裏插入圖片描述
二、方法的重載

static void Main(string[] args)
{
	AddNumber(1,2);//只打半個括號,可以看到,總共顯示3個方法,依據每一個方法裏的變量類型不同,輸入對應的數值
}
//返回值類型爲int,參數的個數爲2,參數類型都爲int類型
public static int AddNumber(int num1, int num2)
{
	return num1 + num2;
}

//返回值類型爲double,參數的個數爲2,類型都爲double類型
public static double AddNumber(double num1, double num2)
{
	return num1 + num2;
}
//返回值類型爲double,參數的個數爲2,類型分別爲double類型和int類型
public static double AddNumber(double num1, int num2)
{
	return num1 + num2;
}

三、返回一個數組

static void Main(string[] args)
{
	//方法  求	和,最大值,最小值

	int[] nums = {1,2,3,4,5,6,7,8,9};//定義nums數組並賦值
	int[] arrayNumbers = ArraySumAndMaxOrMin(nums);//調用ArraySumAndMaxOrMin的方法
 
 	Console.WriteLine("最大值爲{0}",arrayNumbers[0]);
 	Console.WriteLine("最小值爲{0}",arrayNumbers[1]);
 	Console.WriteLine("和爲{0}",arrayNumbers[2]);

	Console.ReadKey();
	//返回多個值,不同類型
}

public static int[] ArraySumAndMaxOrMin(int[] numbers)
{
	int[] array = new int[3];//聲明數組
	array[0] = int.MinValue;
	array[1] = int.MaxValue;
	array[2] = 0;
	for (int i = 0; i < numbers.Length; i++)
	{
		if (numbers[i]>array[0])//如果數組數值小於最小值
		{
			array[0] = numbers[i];//將數組數值賦給min變量
		}
		if (numbers[i]<array[1])//如果數組數值大於最大值
		{
			array[1] = numbers[i];//將數組數值賦給max變量
		}
		array[2] += numbers[i];//求和
	}
	return array;
	
}

三、out返回值

static void Main(string[] args)
{
	int number1 = 10;//定義變量
	
	//AddNumber的參數number1所採用的值是從方法中傳過來的
	int sum = AddNumber(out number1);
	
	//如果方法的參數用out修飾了,那麼這個參數 必須在 方法裏 進行賦值
	//變量前加out,是把方法裏的值,傳到方法外面去了
	Console.WriteLine(number1);//所以此刻的number1的值爲100
	Console.WriteLine(sum);//而返回的總和爲:120
	Console.ReadKey();
}

public static int AddNumber(out int num1)
{
	num1 = 100;//定義變量
	return num1 + 20;//返回100+20
}

有參數不加out,則加out的參數必須在方法裏賦初值,未加out的參數可以不在方法裏賦初值

static void Main(string[] args)
{
	int num1;//聲明變量
	int num2 = 80;//給變量賦初值,num2未加out,可以不在方法裏賦初值
	int numSum = Show(out num1,num2);//調用方法
	
	Console.WriteLine(num1);
	Console.WriteLine(num2);
	Console.ReadKey();
	//out修飾方法的參數了,在方法外面,可以不給這個參數賦值,但是在方法裏面必須給這個out修飾符的參數賦初值
	//另外,參數加out,是把這個方法中的參數的值傳到方法外面去了
}

public static int Show(out int number1,int number2)
{
	number1 = 90;
	return number1 + 10;
}

四、ref返回值

static void Main(string[] args)
{
	int number1 = 10;//給變量賦初值
	int number2 = 20;//給變量賦初值

	int sum = Show(ref number1, ref number2);//調用方法

	Console.WriteLine("{0}{1}{2}",number1 +"\t",number2 +"\t",sum)
	Console.ReadKey();
	//ref 用的時候必須要給這個變量賦初值,和out有區別
    //out 可以把方法裏的值傳出去
    //ref 可以把值傳到方法裏,又可以把值傳到方法外,
}

public static int Show(ref in num1, ref int num2)//方法
{
	return num1 + num2;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章