私はIEnumerableのような外部クラスにメソッドを追加するために使用されています。しかし、C#で配列を拡張できますか?C#で配列を拡張することはできますか?
多次元であってもIEnumerableに変換する配列にメソッドを追加する予定です。私はそれをやったHow to extend arrays in C#
私はIEnumerableのような外部クラスにメソッドを追加するために使用されています。しかし、C#で配列を拡張できますか?C#で配列を拡張することはできますか?
多次元であってもIEnumerableに変換する配列にメソッドを追加する予定です。私はそれをやったHow to extend arrays in C#
static class Extension
{
public static string Extend(this Array array)
{
return "Yes, you can";
}
}
class Program
{
static void Main(string[] args)
{
int[,,,] multiDimArray = new int[10,10,10,10];
Console.WriteLine(multiDimArray.Extend());
}
}
「この配列配列」は何を意味しますか?私は、Arrayは抽象クラスだと思うので、ここで "この配列配列"を書いて正確に何をしていますか? – VatsalSura
この配列配列は、*この配列*が拡張される型を参照していることを意味します。 *この配列*は、メソッドが * *のT *でもかまいません。public static void Extend
に関連していない
!
public static class ArrayExtensions
{
public static IEnumerable<T> ToEnumerable<T>(this Array target)
{
foreach (var item in target)
yield return (T)item;
}
}
メソッド内で「このArrayターゲット」とは何を意味しますか?私はArrayは抽象クラスだと思うので、 "this Array target"を書いてここで何をしているのですか? – VatsalSura
はい。それがために働かないよう
public static void Extension(this string[] array)
{
// Do stuff
}
// or:
public static void Extension<T>(this T[] array)
{
// Do stuff
}
最後の1は、Array
を拡張するとまったく同じではありません。どちらかすでに示され、または配列、あるいは一般的な配列の特定の種類を拡張することによりとしてArray
クラスを拡張して多次元配列なので、少し拘束されていて便利です。
+1あなたの実装は@ maciejkowよりも型安全です。私はいくつかの配列の拡張メソッドをいくつかの時間前に同様のメソッドを使用して記述しました。 –
ここに質問を投稿するよりも短くして試してみませんか? –
私はしようとしましたが、その過程で間違ったことをしました。今私は期待した振る舞いを得ています –