我习惯将方法添加到像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