c# – 向接口添加新功能
发布时间:2020-12-15 03:57:54 所属栏目:百科 来源:网络整理
导读:我需要为现有接口上的函数创建重载,而不会影响当前实现或使用接口(理想情况下)的任何组件. 我想我有几个选择: 简 原始界面: public interface IServerComponent{ bool Add(int a,int b);} 我可以将新的重载函数添加到接口,并强制实现接口的每个类来实现新
我需要为现有接口上的函数创建重载,而不会影响当前实现或使用接口(理想情况下)的任何组件.
我想我有几个选择: 简 public interface IServerComponent { bool Add(int a,int b); } 我可以将新的重载函数添加到接口,并强制实现接口的每个类来实现新的函数. public interface IServerComponent { bool Add(int a,int b); bool Add(int a,int b,int c); } 或者我可以创建一个实现原始界面的新界面.然后使用原来的其他类不需要改变,任何新的类可以实现新的接口… public interface IServerComponent2 : IServerComponent { bool Add(int a,int c); } 这种情况最好的做法是什么?还有其他选项可用吗? 谢谢 解决方法
如果新方法可以用旧方法表示,可以使用扩展方法:
// Original interface public interface IServerComponent { bool Add(int a,int c); } // New overload public static class MyServerMethods { public static bool Add(this IServerComponent component,int a,int b) { return component.Add(a,b,0); } } 如果方法不能像这样表达(即它们真的需要由组件本身实现),那么我建议定义一个新的界面.这种方法具有最大的向后兼容性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |