接着看上一节的内容,在这里我们分别讲解一下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 两种输出方式;以及Read和ReadLine两种输入方式。
分别说一下Write 和WriteLine:Console.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
W的unicode码是119,由此可见Read方法确实如上所述,并且不会等待你再次输入直接显示结果。
那么ReadLine方法又是什么呢?
我们把刚才的例子改为
static int Main()
{
string c=Console.ReadLine();
string d=Console.ReadLine();
Console.WriteLine(c+"+"+d);
return 0;
}
测试用例还是ww
输出结果 ww+ww
那么为什么会是这种表现呢?在做测试时可以看到它等待你输入回车,然后光标在下一行闪烁等待你再次输入,再次按下回车屏幕才会显示出结果并且结果也和上次表现不同,它的返回类型是string类型,并且输入的是什么输出的表现还是什么。
所以在一开始学习时就要搞清楚每个方法的不同,在以后的学习中逐渐积累,形成好的学习习惯。