私はクラス拡張に精通していますが、次の動作を期待していませんでした。System.Arrayの.NET C#クラスエクステンションを追加するには
私はSystem.Arrayを拡張するために以下のことを期待しましたが、そうではありませんでした。代わりに、のインスタンスをSystem.Arrayに拡張しました。どうして?
public static T[] Concatenate<T>(this Array value1, Array value2)
{
int l1 = value1 == null ? 0 : value1.Length;
int l2 = value2 == null ? 0 : value2.Length;
T[] result = new T[l1 + l2];
if (l1 > 0)
{
Array.Copy(value1, 0, result, 0, l1);
}
if (l2 > 0)
{
Array.Copy(value2, 0, result, l1, l2);
}
return result;
}
...
アレイ。 //連結なし
string[] s = new string[1];
s.Concatenate<string>... // appears here
私はあなたが「クラスエクステンションによく慣れている」というあなたの主張に疑問を呈します。エクステンションメソッドを意味すると仮定すると、これは完全に正常な動作です。拡張メソッドを再度読み上げる時間? –
そう@ジョン。 :-) – IamIC