1.3-第一个C#程序

第一个C#程序

在本节中,我们将创建并运行我们的第一个C#程序。我们将从最简单的"Hello World"开始,然后逐步添加更多功能,以展示C#的基本特性。

创建Hello World程序

使用Visual Studio创建

  1. 创建新项目

    • 打开Visual Studio
    • 点击"创建新项目"
    • 在项目类型中选择"控制台应用"(Console App)
    • 点击"下一步"
  2. 配置项目

    • 输入项目名称(如"HelloWorld")
    • 选择项目位置
    • 选择解决方案名称(默认与项目名称相同)
    • 点击"创建"
  3. 编写代码

    // Program.cs
    // 魔法开始的地方!Main方法是程序入口
    public static void Main(string[] args)
    {
        // Console是系统自带的控制台工具箱
        Console.WriteLine("Hello, World!");
        
        // 等待用户输入名字
        Console.Write("请输入您的名字:");
        // ?表示name可以是null,避免黄牌警告
        string? name = Console.ReadLine();
        
        // $符号开启字符串插值模式,比拼接更优雅
        Console.WriteLine($"你好,{name}!欢迎来到C#世界!");
        
        // 等待用户按键,防止程序立即退出
        Console.WriteLine("\n按任意键退出...");
        Console.ReadKey();
    }
    
  4. 运行程序

    • 按F5键运行程序(调试模式)
    • 或按Ctrl+F5运行程序(不调试)

使用VS Code创建

  1. 创建项目文件夹

    mkdir HelloWorld
    cd HelloWorld
    
  2. 创建新项目

    dotnet new console
    
  3. 打开VS Code

    code .
    
  4. 编写代码

    // Program.cs
    // 魔法开始的地方!Main方法是程序入口
    public static void Main(string[] args)
    {
        // Console是系统自带的控制台工具箱
        Console.WriteLine("Hello, World!");
        
        // 等待用户输入名字
        Console.Write("请输入您的名字:");
        // ?表示name可以是null,避免黄牌警告
        string? name = Console.ReadLine();
        
        // $符号开启字符串插值模式,比拼接更优雅
        Console.WriteLine($"你好,{name}!欢迎来到C#世界!");
        
        // 等待用户按键,防止程序立即退出
        Console.WriteLine("\n按任意键退出...");
        Console.ReadKey();
    }
    
  5. 运行程序

    dotnet run
    

动手实验

让我们通过一些有趣的练习来加深对C#的理解:

1. 方言欢迎语

将欢迎语改成你家乡的方言:

// 根据用户输入选择方言
Console.Write("请选择方言(1:粤语,2:东北话,3:四川话):");
string? choice = Console.ReadLine();

string greeting = choice switch
{
    "1" => "你好啊,{0}!欢迎来到C#世界!",
    "2" => "老铁,{0}!欢迎来到C#世界!",
    "3" => "巴适得很,{0}!欢迎来到C#世界!",
    _ => "你好,{0}!欢迎来到C#世界!"
};

Console.WriteLine(string.Format(greeting, name));

2. 退出倒计时

添加倒计时功能:

// 倒计时功能
Console.WriteLine("\n程序将在5秒后退出...");
for (int i = 5; i > 0; i--)
{
    Console.WriteLine($"倒计时:{i}秒");
    Thread.Sleep(1000);  // 暂停1秒
}
Console.WriteLine("再见!");

3. 隐藏彩蛋

当用户输入特定内容时显示彩蛋:

// 检查是否是管理员
if (name?.ToLower() == "admin")
{
    Console.WriteLine("\n 恭喜你发现了隐藏彩蛋!");
    Console.WriteLine("正在加载彩蛋内容...");
    Thread.Sleep(1000);
    
    // 显示ASCII艺术
    Console.WriteLine(@"
    ╔══════════════════════════════════════╗
    ║            欢迎回来,管理员!        ║
    ║                                     ║
    ║  ██████╗ ██████╗ ███████╗██╗███╗   ║
    ║ ██╔════╝██╔═══██╗██╔════╝██║████║   ║
    ║ ██║     ██║   ██║█████╗  ██║██╔██║   ║
    ║ ██║     ██║   ██║██╔══╝  ██║██║██║   ║
    ║ ╚██████╗╚██████╔╝███████╗██║██║██║   ║
    ║  ╚═════╝ ╚═════╝ ╚══════╝╚═╝╚═╝╚═╝   ║
    ║                                     ║
    ╚══════════════════════════════════════╝
    ");
}

程序结构详解

让我们详细解释C#程序的基本结构:

// 1. 命名空间声明
namespace MyFirstProgram;

// 2. 类声明
public class Program
{
    // 3. 主方法
    public static void Main(string[] args)
    {
        // 4. 程序语句
        Console.WriteLine("Hello, World!");
        
        // 5. 变量声明和使用
        string message = "Welcome to C#!";
        Console.WriteLine(message);
        
        // 6. 用户输入
        Console.Write("请输入一个数字:");
        string? input = Console.ReadLine();
        
        // 7. 类型转换和计算
        if (int.TryParse(input, out int number))
        {
            int result = number * 2;
            Console.WriteLine($"您输入的数字乘以2等于:{result}");
        }
        else
        {
            Console.WriteLine("输入无效,请输入一个有效的数字。");
        }
    }
}

代码结构说明

  1. 命名空间(Namespace)

    • 用于组织代码
    • 避免命名冲突
    • 使用using关键字导入其他命名空间
  2. 类(Class)

    • 定义对象的模板
    • 包含数据(字段)和行为(方法)
    • 使用public关键字使类可被其他程序集访问
  3. 方法(Method)

    • 定义可重用的代码块
    • Main方法是程序的入口点
    • 使用static关键字表示方法属于类而不是实例
  4. 变量和数据类型

    // 基本数据类型
    int number = 42;              // 整数
    double pi = 3.14159;         // 浮点数
    bool isTrue = true;          // 布尔值
    char letter = 'A';           // 字符
    string text = "Hello";       // 字符串
    
    // 可空类型
    int? nullableNumber = null;  // 可空整数
    string? nullableText = null; // 可空字符串
    
  5. 控制流

    // if语句
    if (condition)
    {
        // 代码块
    }
    else if (anotherCondition)
    {
        // 代码块
    }
    else
    {
        // 代码块
    }
    
    // for循环
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine($"计数:{i}");
    }
    
    // while循环
    while (condition)
    {
        // 代码块
    }
    

调试技巧

使用断点

  1. 设置断点

    • 点击代码行号左侧设置断点
    • 或按F9键在当前行设置/取消断点
  2. 条件断点

    • 右键点击断点
    • 选择"条件"
    • 输入条件表达式
  3. 单步执行

    • F10:逐过程执行
    • F11:逐语句执行
    • F5:继续执行

查看变量

  1. 监视窗口

    • 调试 > 窗口 > 监视
    • 添加要监视的变量
  2. 局部变量窗口

    • 显示当前作用域中的所有变量
    • 自动更新变量值
  3. 即时窗口

    • 调试时执行表达式
    • 查看变量值

常见编译错误

  1. 语法错误

    // 错误示例
    Console.WriteLine("Hello World"  // 缺少分号
    
    // 正确示例
    Console.WriteLine("Hello World");  // 添加分号
    
  2. 类型错误

    // 错误示例
    string text = 42;  // 不能将int赋值给string
    
    // 正确示例
    string text = "42";  // 使用字符串
    // 或
    string text = 42.ToString();  // 转换为字符串
    
  3. 未定义变量

    // 错误示例
    Console.WriteLine(undefinedVariable);  // 变量未定义
    
    // 正确示例
    string definedVariable = "Hello";
    Console.WriteLine(definedVariable);
    

代码风格和最佳实践

  1. 命名规范

    // 类名使用PascalCase
    public class UserAccount
    
    // 方法名使用PascalCase
    public void CalculateTotal()
    
    // 变量名使用camelCase
    string userName;
    
    // 常量使用UPPER_CASE
    const int MAX_RETRY_COUNT = 3;
    
  2. 代码组织

    // 使用区域组织代码
    #region Properties
    public string Name { get; set; }
    public int Age { get; set; }
    #endregion
    
    #region Methods
    public void DoSomething()
    {
        // 方法实现
    }
    #endregion
    
  3. 注释规范

    /// 
    /// 计算两个数字的和
    /// 
    /// 第一个数字
    /// 第二个数字
    /// 两个数字的和
    public int Add(int a, int b)
    {
        return a + b;
    }
    

实践练习

  1. 基础练习

    • 创建一个程序,接受用户输入的两个数字
    • 计算并显示它们的和、差、积和商
    • 处理除数为零的情况
  2. 进阶练习

    • 创建一个简单的计算器程序
    • 支持基本的数学运算(加、减、乘、除)
    • 使用函数组织代码
    • 添加错误处理
  3. 挑战练习

    • 创建一个简单的文本游戏
    • 使用条件语句和循环
    • 实现基本的游戏逻辑
    • 添加用户交互

总结

在本节中,我们:

  1. 创建了第一个C#程序
  2. 学习了程序的基本结构
  3. 了解了变量和数据类型
  4. 掌握了基本的控制流
  5. 学习了调试技巧
  6. 了解了常见的编译错误
  7. 学习了代码风格和最佳实践

这些基础知识为我们后续学习更复杂的C#概念打下了基础。在下一章中,我们将深入学习C#的数据类型和变量。

你可能感兴趣的:(C#学习笔记整理,c#,chrome,开发语言,前端,后端)