mat*_*att 5 c# generics polymorphism
class Base
{}
class Sub : Base
{}
void AddNewBase(Base t, LinkedList<Base> list){ ... }
...
{
Sub asub = new Sub();
LinkedList<Sub> asubList = new LinkedList<Sub>();
AddNewBase(asub,asubList) // doesn't work
}
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个自定义插入函数,它接受一个新项目和一个列表来放入它,它做了一些"排序"的东西,找到一个好的地方把它放在列表中.
问题是,我想基于'Base'中的属性来做这个,所以最好只有一个函数可以为所有子类型列表执行此操作.
我想我想要的是:
static void AddNewBase<T>(T t, LinkedList<T> list){ ... }
Run Code Online (Sandbox Code Playgroud)
但有一些澄清T的方式:'其中T是Base的子类'
static void AddNewBase<T>(T t, LinkedList<T> list) where T : Base { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |