Joh*_*Man 5 c# intellisense visual-studio
如果之前有人问过这个问题,我很抱歉,我已经搜索过了,但找不到任何可以解答我困惑的东西。
如果我编写以下代码,我会收到编译器错误No overload for method 'Contains' takes 2 arguments,但 IntelliSense 表明存在一个需要 2 个参数的重载(此处的屏幕截图):
string s = "Hello";
if (s.Contains('h', StringComparer.OrdinalIgnoreCase))
{
Console.WriteLine("True!");
}
Run Code Online (Sandbox Code Playgroud)
我传递一个char作为第一个参数并StringComparer实现IEqualityComparer,所以我不知道出了什么问题。
谁能解释一下为什么我会收到错误?
StringComparerIEqualityComparer<string>使用 string 类型参数实现,但预期参数IEqualityComparer<char>使用 char 类型参数。类型仍然不兼容。
阅读有关泛型类型参数的信息: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-type-parameters
| 归档时间: |
|
| 查看次数: |
4812 次 |
| 最近记录: |