让我们假设我有这三个类
class A {
protected List<T> MakeList<T>() {
return new List<T>
}
}
class B : A {
protected void MyFunction() {
List<B> = MakeList<B>();
}
}
class C : A {
protected void MyFunction() {
List<C> = MakeList<C>();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我永远不需要MakeList()函数返回与调用者类不同的类类型.是否可以更改A中的MakeList函数以允许B和C调用它而不指定Type?(例如,简单地使用List = MakeList() - 省略调用函数时)
您可以使您的基类通用:
class A<T> where T : A<T>
{
protected List<T> MakeList()
{
return new List<T>
}
}
class B : A<B>
{
protected void MyFunction()
{
List<B> x = MakeList();
}
}
class C : A<C>
{
protected void MyFunction()
{
List<C> x = MakeList();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |