なぜC#コンパイラは文字列にContains
メソッドがないと言いますか?なぜC#コンパイラは文字列に `Contains`メソッドがないと言います
errors
オブジェクトがList<Error>
Error.Message
はこの文のstring
である
Assert.True(errors.Any(e => e.Message.Contains("hash value",
StringComparison.OrdinalIgnoreCase)));
コンパイラは言う:
「string」が「含む」の定義が含まれていないと最高の拡張メソッドのオーバーロード
System.Linq.Queryable.Contains<TSource>(System.Linq.IQueryable<TSource>, TSource, System.Collections.Generic.IEqualityComparer<TSource>)
は、いくつかの無効な引数
を持っており、この文のために、コンパイラは幸せです:
Assert.True(errors.Any(e => e.Message.IndexOf("hash value",
StringComparison.OrdinalIgnoreCase) >= 0));
['System.String.Contains()'](https://msdn.microsoft.com/en-us/library/dy85x1sa(v = vs.110).aspx)メソッドは1つしかありません。 2つのパラメータがあります。あなたは何が起こると思いましたか? –
'String.Contains'メソッドの署名は' public bool Contains(string value) 'です。 – Enigmativity
おそらく質問は「コンパイラが 'Contains'の定義を含んでいないと言うでしょうか –