C# 完全学习指南C# 完全学习指南
首页
基础教程
进阶内容
实战项目
编程指南
首页
基础教程
进阶内容
实战项目
编程指南
  • 基础教程

    • 📚 基础教程
    • 第1章 - 认识 C#
    • 第2章 - 环境搭建
    • 第3章 - 第一个程序
    • 第4章 - 变量与数据类型
    • 第5章 - 运算符
    • 第6章 - 控制流程
    • 第7章 - 循环语句
    • 第8章 - 数组
    • 第9章 - 方法
    • 第10章 - 面向对象基础
    • 第11章 - 类与对象
    • 第12章 - 继承
    • 第13章 - 多态
    • 第14章 - 封装
    • 第15章 - 接口

第3章 - 第一个程序

嗨,朋友!我是长安。

上一章我们搭建好了开发环境,这一章我们要深入理解你的第一个 C# 程序。别小看这个简单的 "Hello World",它包含了很多重要的概念!

🤔 回顾第一个程序

还记得我们在上一章创建的程序吗?打开 Visual Studio,创建一个新的控制台应用项目,你会看到这样的代码:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

是不是觉得很简单?这就是 C# 10 引入的"顶级语句"特性。对于初学者来说,这个简化版本很好理解,但我建议你先学习传统的完整结构,这样才能真正理解 C# 程序的组成。

🌟 传统的 C# 程序结构

让我们看看传统(也是更完整)的写法:

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

看起来复杂了很多对吧?别担心,我来一行一行给你解释。

📖 代码详解

1. using System; ⚡

using System;

作用:引入命名空间

类比:就像你要用手机之前,需要先从包里拿出来一样。System 是 .NET 提供的一个基础命名空间,包含了很多常用的功能,比如 Console(控制台)。

详细说明:

  • using 是关键字,表示"使用"
  • System 是命名空间的名字
  • 如果不写这一行,就得这样写:System.Console.WriteLine("Hello, World!");

2. namespace HelloWorld 📦

namespace HelloWorld
{
    // 代码内容
}

作用:定义命名空间

类比:就像你的地址"中国-北京-朝阳区"一样,命名空间用来组织和管理代码,避免重名。

详细说明:

  • namespace 是关键字
  • HelloWorld 是命名空间的名字(通常和项目名一致)
  • 大括号 {} 包含了这个命名空间下的所有代码

小知识

大型项目可能有成百上千个类,使用命名空间可以把相关的类组织在一起。比如:

  • System.IO - 文件操作相关的类
  • System.Net - 网络操作相关的类

3. class Program 🏛️

class Program
{
    // 代码内容
}

作用:定义一个类

类比:类就像一个"模板"或"图纸"。比如汽车的设计图纸就是一个"类",根据这个图纸造出来的实际汽车就是"对象"。

详细说明:

  • class 是关键字,表示定义一个类
  • Program 是类的名字(可以自己起名,但要遵守命名规范)
  • C# 是面向对象的语言,所有代码都要写在类里面

命名规范

  • 类名通常用 大驼峰命名法(PascalCase):每个单词首字母大写
  • 例如:Program、MyFirstProgram、StudentInfo

4. static void Main(string[] args) 🚀

static void Main(string[] args)
{
    // 代码内容
}

作用:程序的入口方法

类比:就像一本书的目录,告诉你从哪里开始读。程序运行时,会自动找到并执行 Main 方法里的代码。

详细拆解:

  • static:静态的,表示这个方法属于类本身,不需要创建对象就能调用
  • void:返回类型,void 表示这个方法不返回任何值
  • Main:方法名,必须是 Main(大小写敏感),这是程序的入口
  • string[] args:参数,可以接收命令行参数(初学者可以先忽略)

重要

每个 C# 程序只能有一个 Main 方法,它是程序的起点。就像火箭发射的起点一样!

5. Console.WriteLine("Hello, World!"); 💬

Console.WriteLine("Hello, World!");

作用:在控制台输出文本

详细拆解:

  • Console:控制台类,来自 System 命名空间
  • WriteLine:方法名,表示"写一行"
  • "Hello, World!":字符串,要输出的内容
  • ;:分号,表示一条语句的结束(非常重要,不要忘记!)

WriteLine vs Write

  • Console.WriteLine():输出后会换行
  • Console.Write():输出后不换行
Console.WriteLine("第一行");
Console.WriteLine("第二行");
// 输出:
// 第一行
// 第二行

Console.Write("第一行");
Console.Write("第二行");
// 输出:
// 第一行第二行

🎨 完整示例:详细注释版

让我把所有知识点整合到一起,写一个带详细注释的完整程序:

// 1. 引入 System 命名空间,以便使用 Console 类
using System;

// 2. 定义一个名为 HelloWorld 的命名空间
namespace HelloWorld
{
    // 3. 定义一个名为 Program 的类
    class Program
    {
        // 4. 定义 Main 方法,这是程序的入口
        //    static: 静态方法
        //    void: 不返回值
        //    string[] args: 可以接收命令行参数
        static void Main(string[] args)
        {
            // 5. 在控制台输出 "Hello, World!"
            Console.WriteLine("Hello, World!");
            
            // 6. 输出更多内容
            Console.WriteLine("我是长安");
            Console.WriteLine("欢迎来到 C# 的世界!");
            
            // 7. 防止程序一闪而过(可选)
            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
        }
    }
}

运行结果:

Hello, World!
我是长安
欢迎来到 C# 的世界!
按任意键退出...

🚀 顶级语句(C# 10+)

前面我们学习了传统的完整结构,现在来看看 C# 10 引入的简化写法:

Console.WriteLine("Hello, World!");
Console.WriteLine("我是长安");
Console.WriteLine("欢迎来到 C# 的世界!");

优点:

  • 代码更简洁
  • 对初学者更友好
  • 适合写简单的脚本

缺点:

  • 隐藏了很多细节
  • 不适合大型项目

长安的建议

学习阶段,建议先使用传统的完整结构,等你理解了类、命名空间这些概念后,再使用顶级语句。这样基础更扎实!

💡 创建传统结构的项目

如果你想创建传统结构的项目,可以这样设置:

  1. 创建新项目时,取消勾选 "不使用顶级语句"
  2. 或者手动修改项目文件(.csproj),添加:
<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net6.0</TargetFramework>
  <ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>

🎯 常见错误和解决方法

错误1:缺少分号

Console.WriteLine("Hello")  // ❌ 缺少分号

错误信息:; expected

解决方法:在语句末尾加上分号

Console.WriteLine("Hello");  // ✅ 正确

错误2:大小写错误

console.WriteLine("Hello");  // ❌ console 应该是 Console

错误信息:The name 'console' does not exist in the current context

解决方法:注意大小写

Console.WriteLine("Hello");  // ✅ 正确

错误3:引号不匹配

Console.WriteLine("Hello);  // ❌ 缺少后引号

错误信息:Newline in constant

解决方法:确保引号成对出现

Console.WriteLine("Hello");  // ✅ 正确

错误4:括号不匹配

Console.WriteLine("Hello";  // ❌ 缺少右括号

错误信息:) expected

解决方法:确保括号成对出现

Console.WriteLine("Hello");  // ✅ 正确

避免错误的技巧

  1. 使用 Visual Studio 的智能提示功能
  2. 注意代码高亮颜色
  3. 养成写完一行就测试的习惯
  4. 仔细看错误信息,它会告诉你错在哪里

📊 程序的执行流程

让我用一个流程图来展示程序是如何执行的:

程序启动
    ↓
找到 Main 方法
    ↓
执行 Main 方法里的第一条语句
    ↓
执行第二条语句
    ↓
执行第三条语句
    ↓
... 继续执行 ...
    ↓
执行最后一条语句
    ↓
程序结束

🎨 实战练习:输出个人信息

让我们来写一个更实用的程序,输出你的个人信息:

using System;

namespace MyInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输出个人信息
            Console.WriteLine("========== 个人信息 ==========");
            Console.WriteLine("姓名:张三");
            Console.WriteLine("年龄:25");
            Console.WriteLine("爱好:编程");
            Console.WriteLine("=============================");
            
            // 等待用户按键
            Console.WriteLine("\n按任意键退出...");
            Console.ReadKey();
        }
    }
}

运行结果:

========== 个人信息 ==========
姓名:张三
年龄:25
爱好:编程
=============================

按任意键退出...

📝 本章小结

这一章我们深入学习了:

  • ✅ C# 程序的完整结构
  • ✅ using、namespace、class、Main 的作用
  • ✅ 如何使用 Console.WriteLine() 输出内容
  • ✅ 顶级语句的简化写法
  • ✅ 常见错误和解决方法
  • ✅ 程序的执行流程

💡 重要概念

概念说明
命名空间组织和管理代码,避免重名
类面向对象的基本单位,代码的容器
Main 方法程序的入口,从这里开始执行
语句程序的基本执行单位,以分号结尾

🎯 下一步

理解了程序的基本结构后,下一章我们要学习如何存储和使用数据——变量和数据类型。这是编程的基础中的基础!

下一章:变量与数据类型 →

💪 练习题

  1. C# 程序的入口方法叫什么名字?
  2. Console.WriteLine() 和 Console.Write() 有什么区别?
  3. 为什么每条语句后面要加分号?
  4. 试着修改上面的个人信息程序,输出你自己的信息
  5. 试着在程序中输出一个简单的图案(用字符画)
答案提示
  1. Main 方法
  2. WriteLine() 输出后换行,Write() 输出后不换行
  3. 分号表示一条语句的结束,告诉编译器这条语句到此为止
  4. 把姓名、年龄、爱好改成你自己的即可
  5. 示例:
Console.WriteLine("  *  ");
Console.WriteLine(" *** ");
Console.WriteLine("*****");
最近更新: 2025/12/27 14:02
Contributors: 王长安
Prev
第2章 - 环境搭建
Next
第4章 - 变量与数据类型