C#方法(函数)精讲
一、方法(函数)的概念函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据叫做参数,返回的执行结果就是返回值。有了函数,我们在写代码的时候就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语
前言:本博文是我自己对C#方法(函数)这块的一些理解,阅读本博文,你可以掌握C#方法(函数)的概念、声明、调用以及一些参数的操作。本博文里面的概念、理论也都是自己总结的,若有不足之处,欢迎留言补充、指正,谢谢!
一、方法(函数)的概念
函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据叫做参数,返回的执行结果就是返回值。
有了函数,我们在写代码的时候就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语法,将不同的函数按照一定的逻辑组织起来。
二、关于方法(函数)的一些补充知识
- 为什么叫方法和函数呢?
指某个对象的行为。 - 有什么用?
减少重复的代码,提高代码的复用性。 - 两者的区别是什么?
类里叫方法,类外叫函数。不过现在区分已经不大了。
函数是这类事情是怎么干的,方法是某种人(某个对象)是如何干这类事情的。
方法和对象相关,函数和对象无关。
简单的理解下,方法就是绑定了实例的函数。 - 过程、方法、函数的区别?
过程(Process): 无返回值。
函数(function):有返回值。
方法:不管有无返回值(过程+函数)。 - 函数返回值的关键字?
return - 代码示例
方法:
public void Print()// void:表示不返回任何数据
{
MessageBox.Show("打印所有的数据");
}
函数:
public int GetCount()
{
return 100;
}
- 什么是函数的参数?
参数其实相当于一个值的副本。
传递副本的好处就是可以避免因误操作而影响了原值。缺陷就是会因复制而产生性能损耗。 - 参数的关键字是什么?
ref、out、params
三、方法(函数)的语法格式
[public] [static] 返回值类型 方法名字([参数列表])
{
方法体
}
注意:
- public:访问修饰符,可以省略,写上这个代表此方法(函数)是公共的,也就是谁都可以进行访问。当然也有其他访问修饰符,详情请查看本人另一篇博文:C#中的五种访问修饰符
- static:表示静态的,详情请查看本人另一篇博文:C#静态static的超全用法,建议收藏!
- 返回值类型:int、string、char等,若没有返回值就是void。
- 方法名字:遵循Pascal命名规则,详情请查看百度百科:帕斯卡命名法
- 参数列表:可以没有参数,但是小括号是必须要有的。
四、调用方法(函数)
调用方法(函数):类名.方法名([参数]);
注意:
如果调用同一个类里面的方法,类名可以省略。
五、示例进行讲解
下面列举一个函数,它可以传入一个int型数组,此函数将返回一个数组中的最大值给我们。
- 创建函数
public static int MaxArr(int[] a)
{
int temp = Int32.MinValue;
for (var i = 0; i < a.Length; i++)
{
if (a[i]>temp)
{
temp = a[i];
}
}
return temp;
}
- 调用函数
int result = MaxArr(new int[]{20,0,-10,30,25,-100});
Console.WriteLine("数组中最大值为:"+result);
//不自动关闭控制台,等待输入
Console.ReadLine();
- 执行效果
相信到这里,你已完全的明白了函数的创建与调用。下来,我们补充一下函数返回值和参数的关键字。
六、补充:函数返回值和参数的关键字
- return的作用
- 返回方法的结果(return后面接其他东西)。
- 在没有返回值的方法里面,终止当前方法(return后面不接东西)。
- params参数
不定参数个数关键字,如果参数列表还有其他参数,params修饰的参数一定要放到最后一个。
- out参数
- 可以帮助我们在一个方法中返回多个值,不限类型。
- 使用out参数的时候,要求out参数必须在方法内为其赋值,也就是初始化。
- ref参数
- ref参数侧重于将一个变量以参数的形式带到一个方法中进行改变,改变完成后,再将改变后的值带出来。
- 在使用ref参数的时候需要注意:ref参数在方法外必须为其赋值,也就是初始化。
例题:
//return:终止函数的运行
public static void MyFun(int num)
{
if (num == 1)
{
Console.WriteLine("num=1");
}
return;
Console.WriteLine("如果num=1的话,此行代码不被执行");
}
// return:返回方法的结果
public int GetResult()
{
int result = 1;
return result;
}
//引用参数(ref):ref在使用前需要先初始化变量的值,在方法体外先初始化
public static void RefMethod(ref int i)
{
i++;
}
// 输出参数(out):out参数必须在方法体内初始化
public static void OutMethod(out int i)
{
i=0;
i++;
}
// 可变参数(params):params后面必须跟数组,之后不允许跟任何其他参数,并且在方法声明中只允许一个params关键字
static int addi(params int[] values)
{
int sum=0;
foreach (int i in values)
{
sum=sum+i;
}
return sum;
}
// 引用参数(ref):ref在使用前需要先初始化变量的值,在方法体外先初始化
public static void RefMethod(ref int i)
{
i++;
}
// 输出参数(out):out参数必须在方法体内初始化
public static void OutMethod(out int i)
{
i=0;
i++;
}
// 可变参数(params):params后面必须跟数组,之后不允许跟任何其他参数,并且在方法声明中只允许一个params关键字
static int addi(params int[] values)
{
int sum=0;
foreach (int i in values)
{
sum=sum+i;
}
return sum;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)