1、方法的重载
方法的名称相同,但是参数不同,用什么类型就调用什么类型的,像Console.WriteLine();
1、保证参数的个数相同,类型不能相同;
2、保证参数的类型相同,个数不能相同;
3、方法的重载与返回值类型没有关系,所以就不能构成重载;
使用方法的重载来反转数组
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChuangzhiConsel
{
class Program
{
static void Main(string[] args)
{
string[] names = { "祖国", "中国", "美国", "英国", "泰国", "加拿大", "澳大利亚", "法国" };
int[] numbers = { 1, 2, 3, 4, 5 };
Converse(ref names);
for (int i = 0; i < names.Length; i++)
{
Console.Write("{0} ", names[i]);
}
Console.WriteLine();
Converse(ref numbers);
for (int i = 0; i < numbers.Length; i++)
{
Console.Write("{0} ", numbers[i]);
}
Console.ReadKey();
}
public static void Converse(ref string[] str)
{
for (int i = 0; i < str.Length/2; i++)
{
string temp = str[i];
str[i] = str[str.Length - 1 - i];
str[str.Length - 1 - i] = temp;
}
}
public static void Converse(ref int[] numbers)//方法的重载
{
for (int i = 0; i < numbers.Length / 2; i++)
{
int temp = numbers[i];
numbers[i] = numbers[numbers.Length - 1 - i];
numbers[numbers.Length - 1 - i] = temp;
}
}
}
}
由于是数组,所以不需要加“ref”,因为是值类型,引类型问题:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChuangzhiConsel
{
class Program
{
static void Main(string[] args)
{
string[] names = { "祖国", "中国", "美国", "英国", "泰国", "加拿大", "澳大利亚", "法国" };
int[] numbers = { 1, 2, 3, 4, 5 };
Converse(names);
for (int i = 0; i < names.Length; i++)
{
Console.Write("{0} ", names[i]);
}
Console.WriteLine();
Converse(numbers);
for (int i = 0; i < numbers.Length; i++)
{
Console.Write("{0} ", numbers[i]);
}
Console.ReadKey();
}
public static void Converse(string[] str)
{
for (int i = 0; i < str.Length/2; i++)
{
string temp = str[i];
str[i] = str[str.Length - 1 - i];
str[str.Length - 1 - i] = temp;
}
}
public static void Converse(int[] numbers)//方法的重载
{
for (int i = 0; i < numbers.Length / 2; i++)
{
int temp = numbers[i];
numbers[i] = numbers[numbers.Length - 1 - i];
numbers[numbers.Length - 1 - i] = temp;
}
}
}
}
2、方法的递归
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChuangzhiConsel
{
class Program
{
public static int i = 0;
static void Main(string[] args)
{
Tets();
Console.ReadKey();
}
public static void Tets()
{
i++;
Console.WriteLine("我要怒放的生命!");
if (i >= 10)
{
return;
}
Tets();
}
}
}
最后结束时一直在这里徘徊10次:
因为每次递归相当于经过了好几个结构,退出时需要再次经过退出。