using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/* 函数
* 孙数就是将一堆代码进生重用的一种机制,函数就是一段代码,这段代码可能有输入的值,可能会返回值,一个函数就像一个专门做这件事的人,我们调用它来作一些事情,它可能需要我们提供一些数据给它
* 它执行完成后可能会有一些执行结果给我们,要求的数据就叫参数,返回的执行结果就是返回值
* Console.ReadLine就是一个有返回结果的函数
* Console.WriteLine("Hello")就是一个有执行参数的函数,只有告诉WriteLine被打印的数据它才知道如何打印:
* int i=Convert.ToInt32("22")则是一个既有参数又有返回值的函数
* 有了函数写代码就像拼积木,C#中的各种各样的技术其实就是通过for,if等这些基础的语法将不同的函数按照一定逻辑组织起来到
*/
namespace _38函数
{
class Program
{
static void Main(string[] args)
{
/*string s = Console.ReadLine(); //返回值,执行结果
int i = ReadInt();
i++;
Console.WriteLine("{0}",i);*/
//计算两个整数中的最大值
//Console.WriteLine(maxInt(44,55));
//计算输入数组的和
//int[] a = { 1,2,66,99,66};
//int sum = _Sum(a);
//Console.WriteLine("计算总和为:{0}",sum);
//确定函数参数的原则,自己能确定的数据自己内部解决,自己确定不了的数据过参数传递
//可变参数
//参数数组: int sum(params int[] values)
//int sum(string name, params int[] values) 可变参数数组必须是最后一个
//参数默认值(.Net4.0): void SayHello(string name, int age=20)
//VFunc("aa","bb","cc","dd");
//可变参数只能放在函数参数的最后一个
//SayHello("Xlc","白菜","黄花");
//函数的默认值
//iHello();
//函数的重载(函数的重名)
//参数类型不同或者参数个数不同(不严谨),与返回值无关
iHello("xxd",29);
iHello("姚明");
Console.ReadKey();
}
static void iHello(string name = "匿名", int age=20)
{
Console.WriteLine("大家好我的名字叫:{0} 我今年:{1}", name,age);
}
static void iHello(string name = "匿名")
{
Console.WriteLine("大家好我的名字叫:{0}",name);
}
static void SayHello(string name, params string[] nickname)
{
Console.WriteLine("我的名称是:{0}",name);
foreach(string _name in nickname){
Console.WriteLine("我的昵称是:{0}",_name);
}
}
static void VFunc(params string[] values)
{
foreach (string name in values) {
Console.WriteLine("Name为:{0}",name);
}
}
//计算一个整数数组的总合
static int _Sum(int[] myint)
{
int sum=0;
for (int i = 0; i < myint.Length; i++) {
sum += myint[i];
}
return sum;
}
//对比两个整数的大小
static int maxInt(int a, int b)
{
if (a > b)
{
return a;
}
else if (b > a)
return b;
else
return 0;
}
static int ReadInt()
{
return 3;
}
}
}