use*_*240 2 c# extension-methods interface
我对C#很陌生,对通用列表和扩展方法有两个问题.对不起,如果问题有点愚蠢..
有什么区别:
public static IObjectWithTempID FindByTempID
(this ObservableCollection<IObjectWithTempID > list, long tempID)
Run Code Online (Sandbox Code Playgroud)
和
public static IObjectWithTempID FindByTempID< E >
(this ObservableCollection< IObjectWithTempID > list, long tempID)
Run Code Online (Sandbox Code Playgroud)
我试图阅读这个主题,但仍然不明白:$
我遇到了一个奇怪的问题.当我宣布一个ObservableCollection,比如这个
ObservableCollection<TestObjectWithTempID> a =
new ObservableCollection<TestObjectWithTempID>();
Run Code Online (Sandbox Code Playgroud)
可以调用扩展方法
public static long FindByTempID
(this IEnumerable< IObjectWithTempID > list, long tempID){}
Run Code Online (Sandbox Code Playgroud)
在名单上.令人惊讶的是,不可能调用扩展方法
public static long FindByTempID
(this ObservableCollection< IObjectWithTempI D> list, long tempID){}
Run Code Online (Sandbox Code Playgroud)
虽然.我错过了什么?
对于2,它需要是:
TheMethod<T>(ObservableCollection<T> list)
where T : ISomeInterface
Run Code Online (Sandbox Code Playgroud)
否则,您可以尝试将任何 ISomeInterface实例添加到更具体的列表中.
| 归档时间: |
|
| 查看次数: |
5380 次 |
| 最近记录: |