过度使用generics

当没有真正的好处是显而易见的时候,人们如何看待generics的使用。 下面是一个示例代码片段,类似于我正在处理的代码,我试图确定如果使用generics有什么好处。

public void DoSomething(Request request) { if (request == null) { throw new ArgumentNullException("request"); } if (Request is ISomeInterface) { DoSomething(); } else { DoSomethingElse(); } } 

你为什么不只使用Object?

引自: C#:System.Object vs Generics

使用object == cast操作和装箱/取消装箱的值类型。 由于这些原因,仿制药更快更优雅(无铸造)。 并且 – 主要原因是,您不会使用generics获得“InvalidCastException”

所以,generics==速度和编译时错误。 对象==运行时exception,速度较低(有时低很多)