如何使用泛型集åˆå£°æ˜Žæ³›åž‹æ–¹æ³•ï¼Ÿ

时间:2016-05-22 15:54:54

标签: c# generics generic-collections

例如

void f<C, T>(C<T> collection, T element) : where C has member method BindarySearch

我有两个问题:

  1. 如果å¯ä»¥ä½¿ç”¨æ³›åž‹é›†åˆå£°æ˜Žæ³›åž‹æ–¹æ³•ï¼Ÿå¦‚果是这样,怎么样?
  2. 如何让C有一个特定的æˆå‘˜æ–¹æ³•ï¼Ÿ 感谢。

1 个答案:

答案 0 :(得分:1)

您å¯ä»¥ä½¿ç”¨ç•Œé¢æ¥å¼ºåˆ¶æ‰§è¡Œæ‰€éœ€çš„æˆå‘˜ï¼š

interface IHasBinarySearch<T> : ICollection<T> {
    int BinarySearch(T item);
}

然åŽå¯ä»¥åƒè¿™æ ·å®šä¹‰æ³›åž‹æ–¹æ³•ï¼š

void f<C, T>(C collection, T element) where C : IHasBinarySearch<T>

此接å£å·²ç»æ˜¯ä¸€ä¸ªé€šç”¨é›†åˆï¼ˆé€šè¿‡æ‰©å±•ICollection<T>),因此无需å†æ¬¡æŒ‡å®šè¯¥æ–¹æ³•çš„约æŸã€‚