Techies-- 我认为我正在为Split正确定义这个静态扩展,我显然不是因为消息:扩展方法必须在非泛型静态类中定义。
这是一个简单的c#控制台程序来测试一些东西。这就是我所拥有的:
class Program
{
static int Main(string[] args)
{
int[] numbers = new int[10000];
for (int i = 0; i < numbers.Length; ++i)
numbers[i] = i;
int[][] sectionedNumbers = numbers.Split(1000);
.
. //blah blah blah .. rest of code
return 0;
}
public static T[][] Split<T>(this T[] arrayIn, int length)
{
bool even = arrayIn.Length % length == 0;
.
.
. // blah blah .. more code
return newArray;
}
我做错了什么?
答案 0 :(得分:2)
您的班级Program
不是错误消息请求的静态内容。
将static
指令添加到类声明:
static class Program
{
// ...
或将Split
完全移到另一个静态类中。
然后你的代码应该再次编译。
答案 1 :(得分:1)
您好,容器类必须是静态的
在静态类中设置方法
public static class Extension
{
public static T[][] Split<T>(this T[] arrayIn, int length)
{
bool even = arrayIn.Length % length == 0;
.
.
. // blah blah .. more code
return newArray;
}
}
答案 2 :(得分:1)
您需要在类中定义扩展方法,如下所示:
public static class ArrayExtensions
{
public static T[][] Split<T>(this T[] arrayIn, int length)
{
bool even = arrayIn.Length % length == 0;
.
.
. // blah blah .. more code
return newArray;
}
}