【发布时间】:2018-05-30 10:17:27
【问题描述】:
假设我有以下代码:
public class BaseClass { }
public class DerivedClass : BaseClass { }
public void GenericMethod<T>(T input) where T : BaseClass
{
//code
}
public void NormalMethod(BaseClass input)
{
//code
}
我的问题是这两种方法有什么区别?这两种方法有什么优点或缺点,为什么?
【问题讨论】:
-
在那种特殊情况下,使用泛型确实没有任何意义。使用基类就可以了。尽管
code中可能有一些东西可以保证这一点 -
在这种情况下没有区别,你已经找到了一种完美的方式来做同样的事情 2 种不同的方式
-
将它们与流式 API 中的方法进行对比,其中方法在执行操作后返回其输入。考虑一下返回类型是什么以及这对流畅的 API 意味着什么。
标签: c# .net generics inheritance