C#泛型编程指导原则(15--16)
来源:互联网 发布:RecyclerView 添加数据 编辑:程序博客网 时间:2024/05/21 17:53
Item 15: Select the Least Restrictive Constraints选择最少限制的约束
在给类型参数选择约束条件的时候,最好只加入最少的限制,不要加入不必要的附加限制。下面是一个约束过头的例子。
public interface IPerson
{
void Validate();
}
public interface ICustomer : IPerson { }
public interface IEmployee : IPerson { }
public class TestClass<T> where T : ICustomer
{
public TestClass(T val)
{
val.Validate();
}
}
这个例子中有一个接口的继承。对TestClass<T>的约束是可行的,但是,但也过分的限制了参数的类型。因为这里需要的约束是Validate(),而它是IPerson的一部分,所以你应该使用IPerson作为约束条件。
Item 16: Don’t Impose Hidden Constraints不要强加隐式的约束条件
即使你的类型没有在声明的时候包含任何约束,这并不意味着你的类型不能在实现中强加隐式的约束。可以想象,通过强制转换或者调用GetType()方法,可以在泛型类型中生成建立于类型参数的代码,在这样的情况下,你仍然对类型参数强加了非直接的约束—仅仅是没有显式的声明而已。
这种隐式的约束当然是约束,同时是糟糕的主意。
- C#泛型编程指导原则(15--16)
- C#泛型编程指导原则(一)
- C#泛型编程指导原则(二)
- C#泛型编程指导原则(五)
- C#泛型编程指导原则(三、四)
- C#泛型编程指导原则(六、七)
- C#泛型编程指导原则(十、十一)
- C#泛型编程指导原则(12--14)
- C#泛型编程指导原则(17--18)
- C#泛型编程指导原则(19--23)
- 极限编程指导原则(XP)
- C#类库处理异常指导原则
- C#泛型编程知道原则(八、九)
- 指导原则
- C#七大编程原则
- 数据库设计指导原则
- 类设计指导原则
- 原则之:指导
- C#泛型编程指导原则(十、十一)
- 正则表达式
- 51单片机 Keil C 延时程序
- LED控制系统(基于FPGA)
- C#泛型编程指导原则(12--14)
- C#泛型编程指导原则(15--16)
- C#泛型编程指导原则(17--18)
- 网站列表之软件(下载)
- C#泛型编程指导原则(19--23)
- Outlook Express 错误代码
- 装了个Ubuntu....
- ADO.NET入门 2
- 网站列表之著名公司
- 用Visual C#实现P2P应用程序