我習慣將方法添加到像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());
}
}
「this Array array」在方法中意味着什麼。我認爲Array是一個抽象類,那麼通過編寫「this Array array」,你到底在做什麼? – VatsalSura 2017-02-07 17:11:17
這個數組數組意味着*這個數組*指的是要擴展的類型。 *這個數組* *可能就是*這個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
類,或通過延長特定類型的數組,甚至一個普通的數組:
public static void Extension(this string[] array)
{
// Do stuff
}
// or:
public static void Extension<T>(this T[] array)
{
// Do stuff
}
最後一個是不完全等同於延長Array
,因爲這不是一個工作多維數組,所以它更受約束,這可能是有用的,我想。
試穿比在這裏發佈問題還短嗎? – 2009-07-25 21:19:30
我試過了,但是在那個過程中我犯了一些錯誤。現在我得到了我期望的行爲 – 2009-07-25 21:24:51