1. C简介C是一种现代、多用途的编程语言,由微软开发,主要用于.NET平台。它结合了面向对象、函数式编程和过程式编程的特性,旨在提高开发效率、确保代码质量和安全性。1.1 C语言特点面向对象:C完全...
C#是一种现代、多用途的编程语言,由微软开发,主要用于.NET平台。它结合了面向对象、函数式编程和过程式编程的特性,旨在提高开发效率、确保代码质量和安全性。
类是C#中的基本构建块,用于定义对象的属性和行为。对象是类的实例,可以创建多个对象来表示不同的实体。
public class Person
{ public string Name { get; set; } public int Age { get; set; } public void Greet() { Console.WriteLine($"Hello, my name is {Name} and I am {Age} years old."); }
}
class Program
{ static void Main(string[] args) { Person person = new Person { Name = "John", Age = 25 }; person.Greet(); }
}继承是面向对象编程中的一个重要概念,允许一个类继承另一个类的属性和方法。多态性允许在运行时根据对象的实际类型调用相应的方法。
public class Animal
{ public virtual void MakeSound() { Console.WriteLine("Animal makes a sound"); }
}
public class Dog : Animal
{ public override void MakeSound() { Console.WriteLine("Dog barks"); }
}
public class Cat : Animal
{ public override void MakeSound() { Console.WriteLine("Cat meows"); }
}
class Program
{ static void Main(string[] args) { Animal dog = new Dog(); Animal cat = new Cat(); dog.MakeSound(); // 输出:Dog barks cat.MakeSound(); // 输出:Cat meows }
}接口定义了类必须实现的方法,委托用于封装方法引用,类似于函数指针。
public interface IComparable
{ int CompareTo(object obj);
}
public class Student : IComparable
{ public string Name { get; set; } public int Age { get; set; } public int CompareTo(object obj) { if (obj == null) return 1; Student other = obj as Student; return Age.CompareTo(other.Age); }
}
class Program
{ static void Main(string[] args) { Student student1 = new Student { Name = "John", Age = 20 }; Student student2 = new Student { Name = "Jane", Age = 25 }; Console.WriteLine(student1.CompareTo(student2)); // 输出:-5 }
}异步编程允许程序在等待某些操作完成时继续执行其他任务,从而提高效率。
using System.Threading.Tasks;
class Program
{ static async Task Main(string[] args) { await Task.Delay(1000); Console.WriteLine("Hello, async!"); }
}Span和Memory进行内存操作,减少垃圾回收。using语句确保及时释放资源。public void ProcessData(ReadOnlySpan data)
{ var header = data.Slice(0, 10); var payload = data.Slice(10); ProcessHeader(header); ProcessPayload(payload);
} ReaderWriterLockSlim进行读写锁,允许多线程并发读,写操作独占访问。private readonly ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim();
public void ReadData()
{ lockSlim.EnterReadLock(); try { // 读取数据 } finally { lockSlim.ExitReadLock(); }
}
public void WriteData()
{ lockSlim.EnterWriteLock(); try { // 写入数据 } finally { lockSlim.ExitWriteLock(); }
}public interface ITaxStrategy
{ decimal CalculateTax(decimal amount);
}
public class USTax : ITaxStrategy
{ public decimal CalculateTax(decimal amount) { return amount * 0.07m; }
}
public class UKTax : ITaxStrategy
{ public decimal CalculateTax(decimal amount) { return amount * 0.2m; }
}
public class TaxApply
{ private ITaxStrategy taxStrategy; public void SetTaxStrategy(ITaxStrategy strategy) { taxStrategy = strategy; } public decimal CalculateTotalTax(decimal amount) { return amount + taxStrategy.CalculateTax(amount); }
}通过以上解析和实战技巧,我们可以更好地掌握C#系统设计,提高开发效率和代码质量。