网站首页 > 技术文章 正文
实例
讲C#程序中基本结构,我们用一个实际的例子。
using System; // 命名空间声明
namespace HelloWorldApp // 命名空间
{
class Program // 类
{
// Main方法 - 程序入口点
static void Main(string[] args)
{
// 输出信息到控制台
Console.WriteLine("Hello, World!");
}
}
}
命名空间 (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 方法中,我们使用了三个命名空间中的类,每个类都执行了它们各自的功能。这就像你打开不同的箱子,取出里面的玩具来玩,每个玩具都有自己的特性和功能。
命名空间声明 (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();
上面这个例子,在使用命名空间中的类时,因为我们已经声明过命名空间,实例化类时就可以不写命名空间。
类 (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!" 输出到控制台。
补充内容
在实际的 C# 程序中,还可能包括以下内容:
注释 (Comments)
// 这是单行注释
/*
这是多行注释
*/
成员变量 (Member Variables)和成员方法
class Example
{
int number; // 成员变量
void DisplayMessage()//成员方法
{
Console.WriteLine("This is a member method.");
}
}
猜你喜欢
- 2025-04-30 基本语法 - C#入门教程(c#基础语法汇总pdf)
- 2025-04-30 C# OpenCV机器视觉:缺陷检测(opencv缺陷检测案例)
- 2025-04-30 C#与TypeScript语法深度对比(c#typeof作用)
- 2025-04-30 .NET10:C#14的一些新功能(c# 10.0)
- 2025-04-30 39.C# 接口(c#接口是什么)
- 2025-04-30 C# 中的Async 和 Await 的用法详解
- 2025-04-30 C#之类型转换(c#类型转换有哪几种)
- 2025-04-30 设计模式(C#) - 装饰器模式实现详解
- 2025-04-30 C#中的Channel(c#中的类由哪三个部分组成)
- 2025-04-30 C# 管道模式:构建灵活、可扩展的处理流程
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)