第一节 从Hello World开始讲C#语言的基本语法与程序结构
using
System;
// A "Hello World!" program in C#
namespace
HelloWorld
{
class
Hello
{
public
static
void
Main()
{
System.Console.WriteLine(
"Hello World!"
);
}
}
}
C#是一种区分大小写的程序设计语言。
C#中所有的关键字都是小写的。
C#中无法创建全局函数或者全局数据。
C#要求所有的程序逻辑都包含在一个
类型定义中(类型是指{类、接口、结构、枚举、委托}中的一种)。我们的Hello World程序就定义在一个类中。
首先我们分析第一行的using System;
这条语句的作用是引入System的
命名空间,这也就意味着在这个程序中我们可以直接使用System命名空间中的类和方法,而不是必须在前面加上System.**。
命名空间:简单的说,命名空间就是一个
程序集内相关类型的一个分组。例如System.IO的命名空间中包含了有关文件I/O的
类型。
程序集:一个非常复杂的概念,也是一个非常重要的概念,这里不会详细描述,可以作为一个单独的单元来介绍程序集,这里我们简单认为程序集就是一个以公共语言运行库(CLR)为宿主的、版本化的、自描述的二进制文件。
在这个简单的程序中,我们把Main函数的程序逻辑放在了一个Hello World的类中。
每个可执行的
C#
应用程序必须包含一个定义了
Main()
方法的类,该方法用来指明程序的入口点。
对于Main函数前面的两个修饰符 public、static。对于这两个内容,我们需要知道的是用public修饰的能够通过
其他类型进行访问,用static修饰的静态方法可以不创建新的对象就直接进行调用。
System.Console.WriteLine(
"Hello World!"
);
这句话其实可以写为
Console.WriteLine(“Hello World!”);,因为我们已经事情引入了命名空间System,所以我们可以直接使用其Console类中的WriteLine函数。通过前文的介绍我们知道这个WriteLine函数肯定是个静态函数。(用static修饰的)
Main()函数的不同的写法
//返回值类型为空,可以接受数组字符串输入作为参数
public static void Main(string[ ] args)
{
}
//没有返回值,没有参数
public static void Main()
{
}
//返回整数,没有参数
public static int Main()
{
}
我们实际应用中可能根据情况来选择不同的Main()函数。
例程:处理命令行参数
public static void Main(string[] args)
{
Console.WriteLine(“****命令行参数****”);
for(int i=0;i<args.Length;i++)
{
Console.WriteLine(“Arg: {0}”,args[i]);
}
}
当然,在这里for循环完全可以改为foreach循环。
一些需要记住的:
字符串格式化
C、c 用于格式化货币,默认情况下,这个会以当地的货币符号为前缀。
D、d
格式化十进制数,还可以指定填充值的最小个数。
E、e
用于指数计数法
F、f
用于定点小数格式化。
G、g
代表general。这个字符用来格式化一个数为定点或指数。
N、n
用于基本的数值格式化(带逗号)
X、x
用于十六进制格式化。X代表为大写,x为小写。
例程:
Console.WriteLine(“{0:C}”,99989.9876,);//0代表占位符
Console.WriteLine(“{0:D9}”,9999);//补零到9位,前补零
Console.WriteLine(“{0:F3}”,9999.99999);