返回目录
Chapter 11 第十一章:c# 编程语法基础
开发者文档 更新于 2025-05-22 02:35:39

第十一章:c# 编程语法基础

C# 简介与《骑马与砍杀2》MOD开发环境搭建

C# 是一种现代、面向对象的编程语言,广泛用于《骑马与砍杀2》的MOD开发。本教程介绍C#的基础知识、环境搭建以及核心语法,帮助开发者快速搭建开发环境并理解C#编程。

1. C# 简介与用途

C#(读作 C Sharp)由微软于2000年推出,基于.NET框架,结合了C、C++和Java的优点,语法简洁且功能强大。

主要用途

2. .NET 框架简介

3. 环境搭建:安装 Visual Studio

Visual Studio 是C#开发的首选集成开发环境(IDE),提供强大的代码编辑、调试和UI设计功能。

安装步骤

  1. 访问 Visual Studio 官网,下载 Community 版(免费,适合个人开发者)。
  2. 运行安装程序,选择“.NET 桌面开发”和“使用 C# 的游戏开发”工作负载。
  3. 点击“安装”,等待完成。
  4. 启动 Visual Studio,通过 Visual Studio Installer 安装推荐更新,完成初始设置。

4. 创建第一个 C# 控制台应用程序

步骤

  1. 打开 Visual Studio,选择“创建新项目”。
  2. 选择“控制台应用程序”(C#),输入项目名称,点击“创建”。
  3. 默认代码包含一个简单的“Hello World”程序:
using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
  1. 按 F5 或选择“调试 > 开始执行”,运行程序,控制台将输出“Hello World!”。

5. C# 基础语法

变量与数据类型

变量是存储数据的容器,需指定数据类型。常见类型包括:

常量与枚举

enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
Days today = Days.Monday;

运算符

控制结构

int temperature = 15;
if (temperature < 20)
{
    Console.WriteLine("It's cold!");
}
else
{
    Console.WriteLine("It's warm!");
}
string month = "February";
switch (month)
{
    case "February":
        Console.WriteLine("28 or 29 days");
        break;
    default:
        Console.WriteLine("31 days");
        break;
}

循环

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}
int i = 0;
while (i < 5)
{
    Console.WriteLine(i);
    i++;
}
int i = 0;
do
{
    Console.WriteLine(i);
    i++;
} while (i < 5);

方法与参数

public void SayHello(string name)
{
    Console.WriteLine("Hello, " + name + "!");
}
SayHello("Alice"); // 输出: Hello, Alice!
public void ModifyNumber(int x) { x += 10; }
int num = 5;
ModifyNumber(num); // num 仍为 5

6. 面向对象编程

类与对象

class Car
{
    public string color;
    public void Drive()
    {
        Console.WriteLine("Car is driving");
    }
}
Car myCar = new Car();
myCar.Drive();

访问修饰符

属性与方法

public class Person
{
    private int age;
    public int Age
    {
        get { return age; }
        set { if (value >= 0) age = value; }
    }
}
public void Speak(string message)
{
    Console.WriteLine(message);
}

继承

子类继承父类的属性和方法,如:

public class Vehicle
{
    public string brand = "Ford";
    public void Honk() { Console.WriteLine("Tuut!"); }
}
public class Car : Vehicle
{
    public string model = "Mustang";
}
Car myCar = new Car();
myCar.Honk(); // 输出: Tuut!

封装

隐藏内部细节,暴露安全接口,如:

public class BankAccount
{
    private double balance;
    public void Deposit(double amount)
    {
        if (amount > 0) balance += amount;
    }
}

多态

通过 virtual 和 override 实现不同对象对同一方法的独特响应,如:

public class Animal
{
    public virtual void Sound()
    {
        Console.WriteLine("Animal sound");
    }
}
public class Pig : Animal
{
    public override void Sound()
    {
        Console.WriteLine("Wee wee");
    }
}

7. 高级主题

集合与泛型


public class GenericList<T>
{
    private List<T> items = new List<T>();
    public void Add(T item) { items.Add(item); }
}

异常处理

使用 try-catch-finally 处理错误,如:

try
{
    int[] arr = new int[5];
    arr[10] = 0; // 引发异常
}
catch (Exception e)
{
    Console.WriteLine("Error: " + e.Message);
}
finally
{
    Console.WriteLine("Cleanup");
}

HarmonyLib(MOD开发相关)

HarmonyLib 是一个用于修改.NET程序的库,适合《骑马与砍杀2》MOD开发。

安装

  1. 在 Visual Studio 中通过 NuGet 安装: Install-Package HarmonyLib
  2. 在项目中引用 HarmonyLib。

使用示例(前缀补丁):

using HarmonyLib;

var harmony = new Harmony("com.yourmod");
harmony.PatchAll();

[HarmonyPatch(typeof(OriginalClass), "MethodName")]
public class PatchClass
{
    static bool Prefix()
    {
        Console.WriteLine("Before original method");
        return true;
    }
}

8. 实践建议