3.1.1.实例
讲C#程序中基本结构,我们用一个实际的例子。
using System; // 命名空间声明
namespace HelloWorldApp // 命名空间
{
class Program // 类
{
// Main方法 - 程序入口点
static void Main(string[] args)
{
// 输出信息到控制台
Console.WriteLine("Hello, World!");
}
}
}
3.1.2.命名空间 (Namespace)
什么是命名空间?
我们先说一下命名空间的作用:分门别类,方便查找和使用
在家里,我们有不同的房间,有厨房、卫生间、卧室、客厅、书房等,我们会把菜刀、砧板、碗筷等炊具放到厨房,同样我们会把床、衣柜、梳妆台等放到卧室,但应该没有人会把马桶刷放到厨房吧,也不会把盛汤的碗丢到枕头旁边吧!我们这样做的目的就是分门别类,防止不同的东西混淆和冲突。这样做的好处就是,我想尿尿,我知道我要去找卫生间,肚子饿的时候我知道去厨房找吃的。
同样的,在编程中命名空间就像厨房、卫生间、客厅一样,它把具有相同属性的类、方法、成员变量等放在同一个命名空间之下,方便我们在后续需要使用这些元素时,我知道去哪个命名空间中找哪个类、哪个方法。
我们举一个通俗的例子:
假设你有三个箱子,每个箱子里放着不同类型的玩具:
第一个箱子:玩具汽车
第二个箱子:积木
第三个箱子:洋娃娃
每个箱子就像一个命名空间,它们帮助你把不同类型的玩具组织在一起,这样你就不会把汽车和积木混在一起。
// 汽车的命名空间
namespace Cars
{
class ToyCar
{
public void Drive()
{
Console.WriteLine("The car is driving.");
}
}
}
// 积木的命名空间
namespace Blocks
{
class BuildingBlock
{
public void Stack()
{
Console.WriteLine("The blocks are stacked.");
}
}
}
// 洋娃娃的命名空间
namespace Dolls
{
class Doll
{
public void Play()
{
Console.WriteLine("The doll is being played with.");
}
}
}
class Program
{
static void Main(string[] args)
{
// 使用命名空间中的类
Cars.ToyCar car = new Cars.ToyCar();
car.Drive();
Blocks.BuildingBlock block = new Blocks.BuildingBlock();
block.Stack();
Dolls.Doll doll = new Dolls.Doll();
doll.Play();
}
}
在 Main 方法中,我们使用了三个命名空间中的类,每个类都执行了它们各自的功能。这就像你打开不同的箱子,取出里面的玩具来玩,每个玩具都有自己的特性和功能。
3.1.3.命名空间声明 (Namespace declaration)
如果每次使用命名空间中的类都如下:
Cars.ToyCar car = new Cars.ToyCar();
Blocks.BuildingBlock block = new Blocks.BuildingBlock();
Dolls.Doll doll = new Dolls.Doll();
这样太累了,我们的命名空间就没有意义了,因此,我们需要对命名空间进行引用,怎么引用呢?我们来看下面这个例子:
//引用命名空间
using Cars;
using Blocks;
using Dolls;
//省略命名空间的名字
ToyCar car = new Cars.ToyCar();
BuildingBlock block = new Blocks.BuildingBlock();
Doll doll = new Dolls.Doll();
上面这个例子,在使用命名空间中的类时,因为我们已经声明过命名空间,实例化类时就可以不写命名空间。
3.1.4.类 (Class)
class Program:定义一个名为 Program 的类,我们一般都把主函数放到Program类里面,当然放到其他类中也没有问题
static void Main(string[] args):Program类中的一个静态方法 ,这是 C# 程序的入口点。每个 C# 控制台应用程序都必须有一个 Main 方法。static 关键字表示这个方法是属于类而不是类的实例的。void 表示这个方法没有返回值。注意:即使是新的语法使用顶级语句,我们看不到main方法,其实并不是main方法不存在了,只不过是编译器给我们添加了一个语法糖,当反编译时,仍然有main方法。
输出信息 (Console Output):
Console.WriteLine(“Hello, World!”),调用 Console 类的 WriteLine 方法,将 “Hello, World!” 输出到控制台。
3.1.5.补充内容
在实际的 C# 程序中,还可能包括以下内容:
注释 (Comments)
// 这是单行注释
/*
这是多行注释
*/
成员变量 (Member Variables)和成员方法
class Example
{
int number; // 成员变量
void DisplayMessage()//成员方法
{
Console.WriteLine("This is a member method.");
}
}