对不起,问题的标题有点模糊.
假设我们有以下代码
class ReportManager<T> where T : IPrint
{
public void MakePaperCopy(T t)
{
//...
t.Print();
//...
}
}
public interface IPrint
{
void Print();
}
Run Code Online (Sandbox Code Playgroud)
它可以轻松地重新制作为非通用版本.像这样
class ReportManager
{
public void MakePaperCopy(IPrint print)
{
//...
print.Print();
//...
}
}
Run Code Online (Sandbox Code Playgroud)
第一种情况有一些优势吗?似乎没有.
我可以说每个带有单一的通用类where T: ISomeInterface都可以轻松地重新编译为非通用版本,应该这样做是因为它降低了代码的复杂性吗?
在所有情况下都没用.
如果您想要返回此内容T,那么您可能想知道确切的类型.
因为当您返回它时,您可以从派生类访问所有(可访问的)成员,而不仅仅是来自基类/接口的成员.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |