C#(CSharp)是由微软开发的一种面向对象编程语言,它广泛应用于开发Windows桌面应用程序、Web应用程序、游戏(通过Unity)等。C#在微软的.NET平台下运行,支持跨平台开发。以下是一个C#入门教程,涵盖了基本的语言概念、语法和应用。

1. C# 环境配置

首先,你需要安装 .NET SDK 和开发工具来开始学习 C#。

安装步骤:

2. Hello World 程序

打开你的IDE,创建一个新的 C# 控制台应用程序,写下下面的代码:

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输出 "Hello, World!" 到控制台
            Console.WriteLine("Hello, World!");
        }
    }
}

代码解释:

  • using System;:引入命名空间System,这是C#的基础库,提供了很多常用的功能,例如控制台输入输出。
  • namespace HelloWorld:命名空间是为了组织代码而设计的,避免不同部分的命名冲突。
  • class Program:定义一个类Program,C#是面向对象的语言,一切代码都在类中。
  • static void Main(string[] args):这是C#程序的入口点,程序执行从Main方法开始。string[] args是命令行参数(可以传递外部数据给程序)。

运行后,控制台会显示:

Hello, World!

3. C# 基本语法

3.1 变量和数据类型

C#是强类型语言,变量必须声明类型后才能使用。

int age = 25;           // 整数
double price = 19.99;   // 浮动点数
bool isActive = true;   // 布尔值
char grade = 'A';       // 单字符
string name = "John";   // 字符串

常见的数据类型:

  • int: 整数
  • double: 双精度浮点数
  • bool: 布尔类型(truefalse
  • char: 单个字符
  • string: 字符串

3.2 控制流语句

C#支持常见的控制流结构,比如条件判断和循环。

// if-else 语句
if (age >= 18)
{
    Console.WriteLine("You are an adult.");
}
else
{
    Console.WriteLine("You are a minor.");
}

// switch 语句
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

// for 循环
for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

// while 循环
int count = 0;
while (count < 5)
{
    Console.WriteLine(count);
    count++;
}

3.3 数组

数组是存储多个相同类型数据的集合。

int[] numbers = { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[0]);  // 输出 1

3.4 方法

方法是执行特定任务的代码块。方法可以有返回值或者没有(void)。

// 定义一个返回整数的加法方法
int Add(int a, int b)
{
    return a + b;
}

// 调用方法
int result = Add(5, 10);
Console.WriteLine(result);  // 输出 15

4. 面向对象编程(OOP)

C#是一种面向对象的编程语言,支持类和对象的创建。

4.1 类和对象

class Car
{
    public string Make;
    public string Model;
    public int Year;

    public void Start()
    {
        Console.WriteLine("The car is starting.");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Car myCar = new Car();
        myCar.Make = "Toyota";
        myCar.Model = "Corolla";
        myCar.Year = 2022;
        myCar.Start();
    }
}
  • class Car: 定义了一个 Car 类。
  • public void Start(): 定义了一个方法 Start,可以通过对象调用。

4.2 构造函数

构造函数用于初始化对象。

class Person
{
    public string Name;
    public int Age;

    // 构造函数
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person("Alice", 30);
        Console.WriteLine(person.Name);  // 输出 Alice
    }
}

5. 异常处理

C#使用try-catch语句处理异常。

try
{
    int result = 10 / 0;  // 会引发异常
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero!");
}

6. LINQ(语言集成查询)

LINQ 是 C# 的强大特性,它允许你以一种声明式的方式查询数据集合。

int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = from n in numbers
                  where n % 2 == 0
                  select n;

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);  // 输出 2 4
}

7. 总结与学习路线

这只是 C# 的基础入门部分,C# 还包括更多高级特性,例如:

  • 异步编程(asyncawait
  • 集合类(如 List<T>, Dictionary<TKey, TValue> 等)
  • 委托和事件
  • 泛型
  • 使用.NET库进行文件操作、网络编程等。

在学习C#时,建议逐步掌握以上基础内容后再深入学习面向对象编程和高级特性。