一、面向对象编程(OOP)核心概念1.1 封装封装是将数据和操作数据的方法绑定在一起,形成一个独立的对象,保护数据不被随意访问。在C中,我们通过类(class)来定义对象,通过访问修饰符(如publi...
封装是将数据和操作数据的方法绑定在一起,形成一个独立的对象,保护数据不被随意访问。在C#中,我们通过类(class)来定义对象,通过访问修饰符(如public, private)来控制成员的可见性,实现数据的封装。
public class BankAccount
{ private double balance; public double Balance { get { return balance; } set { balance = value; } } public void Deposit(double amount) { balance += amount; } public void Withdraw(double amount) { if (amount <= balance) { balance -= amount; } else { throw new InvalidOperationException("Insufficient funds."); } }
}继承让开发者能够创造出子类来继承父类的字段和方法,实现代码的重用。C#支持单一继承,一个子类只能有一个直接父类,但可以通过接口(interface)实现多重继承的效果。
public class SavingsAccount : BankAccount
{ private double interestRate; public double InterestRate { get { return interestRate; } set { interestRate = value; } } public override void Withdraw(double amount) { if (amount <= balance - 100) { balance -= amount; } else { throw new InvalidOperationException("Minimum balance requirement not met."); } }
}多态是指子类对象可以替换父类对象,并且可以表现出自己的特性。在C#中,多态主要通过虚方法(virtual)、重写(override)和抽象方法(abstract)来实现。
public abstract class Animal
{ public abstract void MakeSound();
}
public class Dog : Animal
{ public override void MakeSound() { Console.WriteLine("Woof!"); }
}
public class Cat : Animal
{ public override void MakeSound() { Console.WriteLine("Meow!"); }
}泛型编程允许编写更加通用和复用的代码,通过使用类型参数来创建泛型类和泛型方法。
public class GenericList
{ private T[] items; public GenericList(int size) { items = new T[size]; } public void Add(T item) { items[Count] = item; } public T this[int index] { get { return items[index]; } set { items[index] = value; } } public int Count { get { return items.Length; } }
} 异常处理是C#中处理运行时错误的重要机制。通过try-catch块,可以捕获并处理程序中的错误。
try
{ // Code that may throw an exception
}
catch (Exception ex)
{ // Handle the exception
}LINQ查询是一种强大的数据操作语言,可以用于查询、更新和操作数据源。
var query = from person in people where person.Age > 18 select person.Name;
foreach (var name in query)
{ Console.WriteLine(name);
}C#提供了多种并发编程工具,如任务并行库(TPL)和异步编程模式,以帮助开发者编写高效、可扩展的并发程序。
Task.Run(() =>
{ // Code that runs asynchronously
});掌握C#面向对象编程的进阶技巧对于编写高效、可维护的代码至关重要。通过理解封装、继承、多态、泛型编程、异常处理、LINQ查询和并发编程等概念,开发者可以构建出结构清晰、易于扩展的软件系统。