C#编程基础

时间:2024-10-07 07:50:49

C#(C Sharp)是一种由微软开发的现代化、面向对象的编程语言,广泛用于开发各种类型的应用程序,包括桌面应用、Web 应用、移动应用、游戏等。C# 是 .NET 框架和 .NET Core 的主要编程语言,具有高效的开发工具和丰富的类库支持。下面是 C# 编程基础的介绍。

1. 基本语法

  • 数据类型:C# 提供了多种数据类型,例如整型 (int)、浮点型 (floatdouble)、字符型 (char)、布尔型 (bool)、字符串 (string) 等。
int age = 25;
float height = 1.75f;
char initial = 'A';
bool isStudent = true;
string name = "John";

  • 变量:变量用于存储数据。可以通过 var 关键字声明自动推断类型的变量。
var score = 95;  // 自动推断为 int 类型

  • 常量:常量在定义后不能更改。
const double Pi = 3.14159;

  • 运算符:支持常见的算术运算符(+/%)、比较运算符(==!=><>=<=)和逻辑运算符(&&||!)。

2. 控制结构

  • 条件语句ifelse ifelse 用于条件判断。
if (age >= 18)
{
    Console.WriteLine("You are an adult.");
}
else
{
    Console.WriteLine("You are a minor.");
}

  • 循环:C# 支持 forwhiledo-while 循环。
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(i);
}

int j = 0;
while (j < 10)
{
    Console.WriteLine(j);
    j++;
}

  • switch 语句:用于根据变量的值执行不同的代码块。
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

3. 面向对象编程(OOP)

C# 是一个面向对象的语言,支持类、对象、继承、多态、封装和抽象等 OOP 特性。

  • 类和对象:类是对象的模板。对象是类的实例。
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public void Greet()
    {
        Console.WriteLine($"Hello, my name is {Name}.");
    }
}

Person person = new Person { Name = "Alice", Age = 30 };
person.Greet();  // 输出:Hello, my name is Alice.

  • 继承:子类可以继承父类的属性和方法。
public class Student : Person
{
    public string School { get; set; }
}

Student student = new Student { Name = "Bob", Age = 20, School = "XYZ University" };

  • 多态性:允许子类在父类中定义的方法有不同的实现。
public class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("Animal speaks.");
    }
}

public class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Dog barks.");
    }
}

Animal animal = new Dog();
animal.Speak();  // 输出:Dog barks.

4. 异常处理

异常处理用于捕获和处理运行时错误,以确保程序的健壮性。

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero.");
}
finally
{
    Console.WriteLine("This will always execute.");
}

5. 集合和泛型

  • 数组:存储一组相同类型的数据。
int[] numbers = { 1, 2, 3, 4, 5 };

  • 列表(List):C# 提供 List<T> 泛型类用于动态数组。
List<int> numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);  // 添加元素

  • 字典(Dictionary):用于存储键值对。
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
ages["Bob"] = 25;

6. 委托和事件

  • 委托:委托是类型安全的函数指针,允许将方法作为参数传递。
public delegate void DisplayMessage(string message);

public class Messenger
{
    public void ShowMessage(DisplayMessage display, string message)
    {
        display(message);
    }
}

Messenger messenger = new Messenger();
messenger.ShowMessage(Console.WriteLine, "Hello, Delegates!");

  • 事件:事件是基于委托的,常用于消息传递机制。
public class Button
{
    public event Action Click;

    public void OnClick()
    {
        Click?.Invoke();
    }
}

Button button = new Button();
button.Click += () => Console.WriteLine("Button clicked!");
button.OnClick();

7. LINQ(Language Integrated Query)

LINQ 是 C# 提供的一种查询语法,允许对集合进行操作。

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

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

8. 异步编程

C# 支持 async 和 await 关键字,用于编写异步代码,避免阻塞主线程。

public async Task<string> GetDataAsync()
{
    await Task.Delay(1000);  // 模拟异步操作
    return "Data received.";
}

var data = await GetDataAsync();
Console.WriteLine(data);

总结

C# 是一种功能强大、语法简洁的编程语言,适用于多种应用程序的开发。掌握其基础概念如变量、控制结构、面向对象编程、集合操作等,将帮助你快速上手 C# 开发。