(一)C#基础加强系列之“方法”篇
标准语法:
[访问修饰符] [static] 返回类型 方法名 ([参数列表])
{
方法体
return [返回值]
}
上面的写法,也就是C#中标准的方法的书写的方式,首先,我们先来看一个例子:
无参有返回值 方法:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _01方法_无参有返回值_ { class Program { static void Main(string[] args) { //求100以内所有偶数的和: Console.WriteLine(NumSum());//调用方法,并且将函数所得到的返回值直接打印出来 Console.ReadKey(); } public static int NumSum()//返回值类型 int 参数 无 无参有返回值的方法 { int num = 0; for (int i = 0; i <= 100; i++) { if (i % 2 == 0) //强调一下:/:代表取整 %:代表取余 { num += i; } } return num; } } }
得到的结果为:
下面我们来讲解一下这个简单方法的执行流程:(方法即函数)
注意事项:
当我们写函数时,有一点要注意的是,不能将方法直接写在Main()函数当中,记住,函数中不能嵌套函数,因为Main()函数也是一个函数。
详解:
以 “无参有返回值 方法” 为例:
public :访问修饰符 该修饰符表示公共的,表示大家都可以用, 关于访问修饰符 博主会在后续的连载中详细的介绍 暂时记住public就可以了
static:静态标记 记住:在静态方法中,只能直接访问静态的成员,因为Main函数是静态方法,当我们定义的函数标记成static时,在Main方法中调用方法时,可以直接调用 ,上面的代码大家也看到了,我是直接在Main()方法中调用NumSum()的,但是有同学要问,我方法不用static标记的话,在Main()函数中可不可以使用呢?答案是可以的,怎么用呢?看下面的事例代码:
无参无返回值 方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _02方法_无参无返回值_ { class Program { static void Main(string[] args) { //想要在静态方法中调用非静态方法必须先 实例化 Program p = new Program(); p.SayHello(); Console.ReadKey(); } public void SayHello() //无参无返回值的方法 { Console.WriteLine("Hello,Mr Lucky"); } } }
得到的结果为:
所以说,在静态方法中想要使用其他非静态的成员,是可以实现的。
大家有可能会对 “在静态方法中,只能直接访问静态的成员” 这句话理解起来有些吃力,那么,我再将这句话好好翻译一下:
在静态方法中,我们可以定义非静态字段,可以直接在静态方法中使用,这是因为这些字段本身就是在静态方法中定义的,就像我们在Main()方法中可以直接定义 int a 一样,
但是,如果在静态方法中,想使用其他的方法或者字段时,那么其他的字段或方法最好就是静态的,因为这样就不需要先 “实例化” 然后再使用了,省去了实例化的步骤。
另外,如果一旦声明了一个静态的字段或者方法,那么这个字段或方法会一直存在,直到整个程序结束,该静态方法或字段才会被释放。所以说,在程序中不要大量的使用静态字段或方法,有利于节约内存。
int :返回值类型 表明该函数返回值的类型应该是int类型的 也就是说,在 return 的时候,返回的值就应该是 int 类型的值。(暂时不考虑多态)
NumSum:函数名
上面介绍了 “无参有返回值 方法” 和 “无参无返回值 方法“,接下来就简单写一下 ”有参无返回值 方法“ 和 ”有参有返回值 方法“:
有参无返回值 方法:
事例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _02方法_有参无返回值_ { class Program { static void Main(string[] args) { Func(1); Console.ReadKey(); } //参数定义 必须是 类型+类型名 public static void Func(int num)//有参无返回值的方法 { Console.WriteLine(++num); } } }
得到的结果为:
有参有返回值 方法:
事例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _04方法_有参有返回值_ { class Program { static void Main(string[] args) { Console.WriteLine(NumSum(5, 5)); //调用 NumSum()方法,并写入参数 Console.ReadKey(); } public static int NumSum(int num1, int num2) { return num1 + num2; //将传过来的参数相加,并将结果返回 } } }
得到的结果为:
再讲一下 return
(1)严格意义上讲:return 可以不直接写在最后,可以写在方法体中的任何位置,但是,要注意的是,执行方法中的return时,值要遇到return,方法就立即结束。
(2)没有返回值的方法,也可以有return。这个return在在这里的含义是:不代表要返回的值,而是表示结束该方法。
事例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _05return { class Program { static void Main(string[] args) { SayHello(); Console.ReadKey(); } public static void SayHello() { Console.WriteLine("Hello,Mr Lucky C#"); return; Console.WriteLine("Hello,Mr Lucky Java"); } } }
得到的结果为:
而当我们把return放到 Console.WriteLine("Hello,Mr Lucky Java"); 之后,或者不写return,得到的结果为:
C#基础加强系列之“方法”篇 讲的是C#中最基本的方法的一些语法、执行流程、那么方法的好处是什么呢?主要是为了提高程序设计的效率,节省相同程序段的重复书写,是一个相对独立的基本模块,在日后的连载中会经常的使用到方法,所以大家要好好看,更多的知识,大家期待以后的不断的连载吧。
我写的总结知识主要是为了帮大家理清理清思路,更多的还要靠大家自己的不断的专研。
最后,希望大家能提出你们宝贵的意见,提出你们的想法,让所有人都能分享,知识不仅仅是为自己学的,当我们学到了知识后,更有意义的是分享,不对吗?
今天有时间提前写了一篇总结,更多的总结会在10月份开始陆续的推出来的,大家期待吧。