文章目录
1.方法的重载
方法的重载:一个方法可以有多个场景的应用。相当于一个方法名,但是有多个方法合并到一起的。
1).方法重载基本使用
using System;
namespace first_space
{
class CommonClass
{
static void Main()
{
//int sum = Special(1, 2); // 当传递两个int时,函数支持
string sum = Special("hello","_alien"); // 当传递两个string时,函数也支持
Console.WriteLine("计算的结果为:{0}", sum);
Console.ReadKey();
}
public static int Special(int a, int b) // Special这个方法,可以传递两个int参数
{
int sum;
sum = a + b;
return sum;
}
public static string Special(string a, string b)// Special这个方法,可以传递两个string参数
{
string sum;
sum = a + b;
return sum;
}
}
}
2).方法重载的判断
【1情况:】
【2情况:】
【3情况:】
【4情况:】
2.方法中的参数:out
out参数:在方法中,有时候我们希望返回的是多个参数,而且又包含多个不同的数据类型。如果通过原始的public static int Func(int a, int b) 这种方式定义方法,则方法名前面的int不能代表各个返回值的类型。
using System;
namespace out参数
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8 };
int max = 0;
int min = 0;
int sum = 0;
int avg = 0;
bool b;
string s;
// 传递的形参如果有out,代表默认要返回的值
// 此处虽然把max传递给方法,但代表test对max本身操作,而不是max的值操作!!!
test(numbers, out max, out min, out sum, out avg, out b, out s);
Console.WriteLine(max);
Console.WriteLine(min);
Console.WriteLine(sum);
Console.WriteLine(avg);
}
/// <summary>
/// 计算一个数组的最大值,最小值,总和,平均值
/// </summary>
/// <param name="nums">要计算的数组</param>
/// <param name="max">多余返回的最大值</param>
/// <param name="min"></param>
/// <param name="sum"></param>
/// <param name="avg"></param>
public static void test(int[] nums, out int max, out int min, out int sum, out int avg, out bool b, out string s)
{
//out参数在方法内部必须为其赋值
max = nums[0];
min = nums[1];
sum = 0;
avg = 0;
b = true;
s = "qwe";
for (int i = 0; i < nums.Length; i++)
{
if (max <= nums[i])
{
max = nums[i];
}
if (min > nums[i])
{
min = nums[i];
}
sum += nums[i];
}
avg = sum / nums.Length;
}
}
}
3.方法中的参数:ref
ref参数:在方法中,有时候我们将变量传递给方法,虽然只是将变量的值传递过去了。但是,有时候我们也希望将原始的变量也一起跟着改变。形参前加 ref ,代表将这个变量本身传递给方法去操作
// 未使用ref效果
int number = 10;
int n = Modify(number);
Console.WriteLine("n的值为:{0}",n);
Console.WriteLine("number的值为:{0}",number);
Console.ReadKey(true);
static int Modify(int n)
{
n += 1;
return n;
}
// n的值为:11
// number的值为:10
// 使用ref效果
int number = 10;
int n = Modify(ref number); // 注意,在调用方法的时候,需要将参数前面加ref ,与方法的形参保持一致!!!
Console.WriteLine("n的值为:{0}",n);
Console.WriteLine("number的值为:{0}",number);
Console.ReadKey(true);
static int Modify(ref int n)
{
n += 1;
return n;
}
// n的值为:11
// number的值为:11
4.方法中的参数:params
params参数:有时候,需要传递给方法多个相同类型的参数,但又不想写死具体几个参数,则可以使用parmas设定形参。
int n = Modify(666, 1, 3, 5); // 将666传递给了形参id,其余的数字传递给了数组n
Console.WriteLine("n的值为:{0}",n);
Console.ReadKey(true);
static int Modify(int id, params int[] n) // parmas修饰的参数n,在最后一个
{
int num = 0;
for(int i = 0; i < n.Length; i++)
{
num += n[i];
}
Console.WriteLine("id的值为:{0}", id);
return num;
}