C#知识点小汇总

前言:C#编写的综合案例,演示了接口、类的继承、类的派生、枚举器(IEnumerable)、无参构造函数、单参构造函数和多参数构造函数,以及向基类返回参数的功能,同时添加委托和事件哈希表等案例并在主函数调用。

代码实现:

using System;  
using System.Collections.Generic;  
using System.Linq;  
  
// 定义委托  
public delegate void AnimalEventHandler(object source, EventArgs args);  
  
// 定义事件哈希表  
public static Dictionary<string, AnimalEventHandler> EventHandlers = new Dictionary<string, AnimalEventHandler>();  
  
// 注册事件处理器  
public static void RegisterEventHandler(string eventName, AnimalEventHandler handler)  
{  
    EventHandlers.Add(eventName, handler);  
}  
  
// 触发事件  
public static void TriggerEvent(string eventName)  
{  
    if (EventHandlers.ContainsKey(eventName))  
    {  
        AnimalEventHandler handler = EventHandlers[eventName];  
        handler(this, EventArgs.Empty);  
    }  
}  
  
// 定义接口  
public interface IAnimal  
{  
    event AnimalEventHandler SpeakEvent;  
}  
  
// 定义基类  
public class Animal : IAnimal  
{  
    // 无参构造函数  
    public Animal() { }  
  
    // 单参构造函数  
    public Animal(string name) { Name = name; }  
  
    // 多参数构造函数  
    public Animal(string name, int age) { Name = name; Age = age; }  
  
    // 向基类返回参数  
    public string Name { get; set; }  
  
    public int Age { get; set; }  
  
    // 定义事件成员变量  
    public event AnimalEventHandler SpeakEvent;  
  
    // 实现接口中的方法(触发事件)  
    public void Speak()  
    {  
        if (SpeakEvent != null) SpeakEvent(this, EventArgs.Empty);  
    }  
}  
  
// 定义派生类  
public class Dog : Animal  
{  
    // 无参构造函数  
    public Dog() { }  
  
    // 单参构造函数  
    public Dog(string name) : base(name) { }  
  
    // 多参数构造函数  
    public Dog(string name, int age) : base(name, age) { }  
}  
  
// 定义另一个派生类  
public class Cat : Animal  
{  
    // 无参构造函数  
    public Cat() { }  
  
    // 单参构造函数  
    public Cat(string name) : base(name) { }  
  
    // 多参数构造函数  
    public Cat(string name, int age) : base(name, age) { }   //主函数:创建动物,注册事件,触发事件等操作:下面是一个例子:假设我们要创建一个Animal集合,然后注册一个事件处理器来监听动物的叫声,并在听到叫声时输出一些信息。同时,我们还要创建一个Dog对象和一个Cat对象,并触发它们的叫声事件。代码如下:  ```csharp public static void Main() {   // 创建 Animal 对象集合   List<Animal> animals = new List<Animal>()   {   new Dog("Rex"), new Cat("Whiskers")   }; // 注册事件处理器   foreach (Animal animal in animals) animal.SpeakEvent += Animal_Speak; // 触发事件   foreach (Animal animal in animals) animal.Speak(); // 无参构造函数  foreach (Animal animal in animals) Console.WriteLine($"Name: {animal.Name}, Age: {animal.Age}"); // 单参构造函数  foreach (Animal animal in animals) Console.WriteLine($"Name: {animal.Name}, Age: {animal.Age}"); // 多参数构造函数  Console.ReadLine(); } // 处理事件 void Animal_Speak(object source, EventArgs args)  { Console.WriteLine($"I heard an animal say: {((Animal)source).Name} says:"); }```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值