は、私は2つの拡張メソッドがあります:拡張メソッドのオーバーロードの選択
public static IPropertyAssertions<T> ShouldHave<T>(this T subject)
{
return new PropertyAssertions<T>(subject);
}
public static IPropertyAssertions<T> ShouldHave<T>(this IEnumerable<T> subject)
{
return new CollectionPropertyAssertions<T>(subject);
}
を今私はそれを使用するいくつかのコードを記述します。
List<Customer> collection2 = new List<Customer>();
collection2.ShouldHave(); //first overload is chosen
IEnumerable<Customer> collection3 = new List<Customer>();
collection3.ShouldHave(); //second overload is chosen
2番目のオーバーロードは、私は明示的にIEnumerableをタイプを指定した場合にのみ選択されています。どちらの場合でも2番目の過負荷を選択する方法はありますか?
'collection1'と' collection2'には違いはありません。それらはまったく同じコードであり、異なる書式しか書かれていません。 – svick
@svick、はい、すべての構文オプションを表示したい – SiberianGuy
拡張メソッドであるという事実は無関係です。オーバーロードの解決は通常の静的メソッドのように扱います。 –