【发布时间】:2013-02-26 21:37:36
【问题描述】:
所以,我遇到了 Servy (https://stackoverflow.com/a/15098242/496680) 的答案,他的一些代码是这样做的:
public static int BinarySearch<TSource, TKey>(...)
对于一个扩展方法,但他这样称呼它:
arr.BinarySearch(...)
我四处询问,有人提到它是一个隐含的泛型类型参数。 我用谷歌搜索了它们,但没有找到关于它们的信息。 我了解泛型的工作原理,但我不明白如何/何时使用它们。
- 为什么servy在他的扩展方法中使用它们?
- 我可以搜索这些更正式的名称吗?
【问题讨论】:
-
我可以简单地回答#1。它允许该方法适用于任何类型的集合,而不是仅适用于字符串或整数或 Foos 或其他任何东西。它还允许您与任何类型的值进行比较,可以是 int 或 string 或 Bar 或 [...]。在您的特定情况下,您只需要从某种类型的数组中选择一个
int(我什至不知道您的名字)。使用泛型它不仅适用于您的一种情况,而且适用于具有相同问题但类型不同的任何类似情况。这将更有利于未来的访问者找到您的问题。 -
@Servy 谢谢!对于未来的读者,我还发现了这篇文章:stackoverflow.com/questions/4885027/…