c#学习step by step---------关于main方法

来源:互联网 发布:同济医学院知乎 编辑:程序博客网 时间:2024/06/06 12:59
 

接着看上一节的内容,在这里我们分别讲解一下System系统命名空间和Main()函数

System系统命名空间 ,它里面包含了很多的类库,其中的Console类就在这个命名空间下。

Main()函数是C#程序的入口函数,学过C语言的人都知道。在C#中也是一样的,不过需要注意的是我在上一讲中就已经提到他是Csharp项目的入口函数。也就是说一个项目只能有一个入口函数,那就是Main()函数

这个函数有几个特点

1.       Main函数必需首字母大写,这一点要注意C#语言是强类型语言,所以它是区分大小写的

2.       Main()函数可以又返回值,并且它的返回类型是什么呢?只能有两种void int 型,而不能是其他的类型。例如我写成

Static int Main()

{

           Consoele.WriteLine(DateTime.Now);

           Return 0;

从运行的结果可以看出,程序还是可以执行的通的,并且显示效果是一样的

3.       Main()函数必须是Static ,也就是必须是静态的,这是为什么呢,在以后的章节中我们会慢慢讲解,大家现在只是知道这么来写就可以了。

4.       Main()函数可以带参数也可以不带参数,那么这叫做方法的重载(关于方法的重载在第七章我们会有详细的讲解),可带的参数是什么类型的呢?只可以是string [ ]类型的数组。那么又要问既然Main函数可以带参数,那么他就是形参,那谁给它传实参呢,肯定不会是他自己了,那么这就实现了程序间,进程的信息传递。

讲完了系统命名空间和主函数,让我们再来看一下在这个程序中唯一的一个语句段就是

Consoele.WriteLine(DateTime.Now);

那么在第一讲中已经提到Console是在系统命名空间下定义的一个系统的类,表示控制台应用程序的标准输入输出流。

它有Write WriteLine 两种输出方式;以及ReadReadLine两种输入方式。

分别说一下Write WriteLineConsole.write”hello”);Console.writeLine”hello”)这两种方法最直观的表现是一个输出无换行,一个输出有换行;

那么输入呢,和刚才的输出大不相同。Read()这个方法是什么呢,它返回的类型是int型,这个返回的值是你输入的第一个字符的UNICODE码,不管你输入的是多少个字符,他只返回第一个字符,如果你想通过两个Read方法读取连续的两个字符,那么你就错了,他只会读取第一次输入的字符的前两个字符的UNICODE码,示例如下

static int Main()  

         {

                   int c=Console.Read();

                   int d=Console.Read();

                  Console.WriteLine(c+"+"+d);

                   return   0;    

         }

测试用例是 输入ww

那么输出结果是: 119+119

Wunicode码是119,由此可见Read方法确实如上所述,并且不会等待你再次输入直接显示结果。

那么ReadLine方法又是什么呢?

我们把刚才的例子改为

static int Main()  

         {

                   string c=Console.ReadLine();

                   string d=Console.ReadLine();

                  Console.WriteLine(c+"+"+d);

                   return   0;    

         }

测试用例还是ww

输出结果 ww+ww

那么为什么会是这种表现呢?在做测试时可以看到它等待你输入回车,然后光标在下一行闪烁等待你再次输入,再次按下回车屏幕才会显示出结果并且结果也和上次表现不同,它的返回类型是string类型,并且输入的是什么输出的表现还是什么。

所以在一开始学习时就要搞清楚每个方法的不同,在以后的学习中逐渐积累,形成好的学习习惯。