网站首页 > 技术文章 正文
实例
讲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-07-24 Channels: C# 实现高效的线程间通信
- 2025-07-24 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
- 2025-07-24 C# 获取Windows的系统信息(c# 获取本机的ip地址)
- 2025-07-24 C# 读取本地网络配置信息(c# 读取配置文件的方法)
- 2025-07-24 MODBUS协议在C#中的应用案例(c#modbus 程序)
- 2025-07-24 C#接口(c接口镜头)
- 2025-07-24 AngleSharp :在 C# 中轻松解析和操作 HTML/XML 文档
- 2025-07-24 C#中的9个“黑魔法”与“骚操作”
- 2025-07-24 C#.NET Ninject 详解(c#.net framework)
- 2025-07-24 C#.NET HttpClient 使用教程(c#开启http服务)
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)