观察者模式
namespace ObserverInNET { class Program { // 委托充当订阅者接口类 public delegate void NotifyEventHandler(object sender); // 抽象订阅号类 public class TenXun { public NotifyEventHandler NotifyEvent; public string Symbol { get; set; } public string Info { get; set; } public TenXun(string symbol, string info) { this.Symbol = symbol; this.Info = info; } #region 新增对订阅号列表的维护操作 public void AddObserver(NotifyEventHandler ob) { NotifyEvent += ob; } public void RemoveObserver(NotifyEventHandler ob) { NotifyEvent -= ob; } #endregion public void Update() { if (NotifyEvent != null) { NotifyEvent(this); } } } // 具体订阅号类 public class TenXunGame : TenXun { public TenXunGame(string symbol, string info) : base(symbol, info) { } } // 具体订阅者类 public class Subscriber { public string Name { get; set; } public Subscriber(string name) { this.Name = name; } public void ReceiveAndPrint(Object obj) { TenXun tenxun = obj as TenXun; if (tenxun != null) { Console.WriteLine("Notified {0} of {1}'s" + " Info is: {2}", Name, tenxun.Symbol, tenxun.Info); } } } static void Main(string[] args) { TenXun tenXun = new TenXunGame("TenXun Game", "Have a new game published ...."); Subscriber lh = new Subscriber("Learning Hard"); Subscriber tom = new Subscriber("Tom"); // 添加订阅者 tenXun.AddObserver(new NotifyEventHandler(lh.ReceiveAndPrint)); tenXun.AddObserver(new NotifyEventHandler(tom.ReceiveAndPrint)); tenXun.Update(); Console.WriteLine("-----------------------------------"); Console.WriteLine("移除Tom订阅者"); tenXun.RemoveObserver(new NotifyEventHandler(tom.ReceiveAndPrint)); tenXun.Update(); Console.ReadLine(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2015-05-08 一个窗口里包含一个iframe,点击iframe内的submit按钮,返回的视图总是显示在iframe中,我想要的效果是点击按钮后返回的视图是在浏览器窗口中...?asp.net mvc 的action中,不用js怎么实现??????????