使用Nemerle,我想创建一个具有泛型类型约束和'requires'前置条件的方法。关于方法的返回类型,这些的正确顺序/语法是什么?
这是我想要的C#示例:
//Count the number of items in a 2D array
public static int CountAll<T>(this T[] source)
where T : Array
{
Contract.Requires(source != null);
return source.Sum(sub => sub.Length);
}
这是我最好的Nemerle猜测,编译器不喜欢这样:
public static CountAll[T](this source : array[T]) : int
where T : array
requires source != null
{
source.Sum(sub => sub.Length);
}
如何进行编译?
修改
当我实际意为array
时,我使用的是System.Array
关键字。
编译:
public static CountAll[T](this source : array[T]) : int
where T : System.Array
requires source != null
{
source.Sum(sub => sub.Length);
}