小奇:老酷,我要举报,有人开挂!
老酷:what?写个程序,开哪门子挂?
小奇:你看昨天我写的为数组求和的代码
static void Main(string[] args)
{
//数组声明并实例化
int[] numArr = { 7,5,6,4,2,9};
int sum = 0;
for (int i = 0; i < numArr.Length; i++)
{
sum += numArr[i];
}
Console.WriteLine(sum);
}
可是人家对于相同的数组求和很简洁
static void Main(string[] args)
{
//数组声明并实例化
int[] numArr = { 7,5,6,4,2,9};
int ret = numArr.Sum();
Console.WriteLine(ret);
}
有效代码竟然3行!!很受打击,很受伤害!!
老酷:这有什么,不就是使用了系统的方法么,你也可以?要不要学?。。。
小奇:学!肯定学啊!我也想开挂!
老酷:这个知识点叫做函数,又叫方法。 函数就是具有特定功能的代码块。所谓的特定功能,越单一越好!越单一,那么重用性就越好。函数就是帮助我们偷懒的“帮凶”之一。
小奇:这种开挂的方式就是函数?
老酷:是的。函数有三个要素!返回值类型 方法名 参数。我们接触的第一个函数是Main方法 第二个函数是Console.WriteLine();首先我们来看Main方法:
static void Main(string[] args)
{
}
static 关键字我们先不考虑 那么void就是返回值类型 Main是方法名 ()中的就是参数列表
1.我们学习的任何数据类型都可以是返回值类型
2.Main方法是程序的入口,由程序自动调用
我们自定义的方法应该同样遵守这样的规则!
拿刚才对整型数组int[] 求和这样的例子,我们可以简单分析
1.返回值类型: 我们的目的是得到数组中所有元素的和 -->int
2.方法名: 我们可以自定义 要有意义 --->GetSumOfArr
3.参数列表:整型数组 int[] 参数列表中的变量 我们称之为形参 形参类似于占位符 只在方法内部有影响。
static int GetSumOfArr(int[] arr)
{
int ret = 0;
for (int i = 0; i < arr.Length; i++)
{
ret = arr[i];
}
return ret;
}
这样我们就定义了一个方法。方法的参数arr在方法中是没有数据的,这时候我们的方法没有什么用,只有当方法调用的时候才有用。
小奇:方法调用?听着好高级!
老酷:其实很简单。就是将方法名参数列表放在Main方法或者其他方法中就行了。
例如:
static void Main(string[] args)
{
int[] numArr = { 1, 2, 3, 4, 5, 6 };
int result = GetSumOfArr(numArr);
Console.WriteLine(result);
}
static int GetSumOfArr(int[] arr)
{
int ret = 0;
for (int i = 0; i < arr.Length; i++)
{
ret += arr[i];
}
return ret;
}
方法调用
在Main方法中numArr 就是方法GetSumOfArr的实参(实际参数)arr是GetSumOfArr的形参。
在调用GetSumOfArr的时候有一个numArr 将值赋值给arr过程 ---> arr = numArr
小奇:你刚才在说定义方法的三个步骤的时候,第一步写了返回值类型的定义。我怎么知道我的返回值类型是什么呢?
老酷:方法返回值类型是由返回值的类型决定的。距离说明GetSumOfArr的返回类型其实是由ret决定的。在你定义方法的不确定返回类型的时候可以先定义成void的然后在写完方法的时候根据返回值的类型来决定方法的返回值类型。
小奇:这样就简单多了。
老酷:今天就先先给你讲到这里吧!明天在给你说有关的方法的参数和重载问题!
小奇:可以。I Love You!
老酷:好恶心!!对你不感兴趣!!
网友评论