String.Join
カスタム オブジェクトの配列を、次のようなシグネチャを持つ関数に渡したい:
public static string Join(string separator, params Object[] values)
public static string Join(string separator, IEnumerable<T> values)
次のように関数を呼び出すと:
var arr = new MyClass[]{ new MyClass(), new MyClass() };
string text = string.Join("\n", arr);
コンパイラ エラーが発生します。
次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'string.Join(string, params object[])' と 'string.Join(string, System.Collections.Generic.IEnumerable)'
IEnumerable<T>
関数を使用してあいまいさを解決できます。
var arr = new MyClass[]{ new MyClass(), new MyClass() };
string text = string.Join<MyClass>("\n", arr);
しかし、params object[]
関数を呼び出すことはできますか?
それが違いを生む場合、私はC#4.0を使用しています。