界面:
getGroupCount()
静态类:
public interface IArrayOperation
{
int GetElement(int index);
bool IndexCheck(int index);
}
在这里,我想在静态类方法public static class TestArray
{
public static int GetArrayLength(IArrayOperation arrayOperation)
{
// Implement your logic here.
// I need to implement interface method over here.
throw new NotImplementedException();
}
}
中实现两种接口方法。
我不想实现接口,但我已将接口作为静态类方法中的参数传递。
赞赏任何帮助或指导。
答案 0 :(得分:0)
如果没有派生类,则无法实现接口方法。但是,如果您的界面提供了足够的基本功能,则可以通过扩展方法将派生信息添加到接口。
对于数组,您可以使用接口方法IndexCheck
并通过检查最后一个有效索引来获取数组长度。
public interface IArrayOperation
{
bool IndexCheck(int index);
}
public static class TestArray
{
public static int GetArrayLength(this IArrayOperation arrayOperation)
{
int len = 0;
while (arrayOperation.IndexCheck(len)) { ++len; }
return len;
}
}
或者你可以有一个数组长度并导出索引检查
public interface IArrayOperation
{
int GetArrayLength();
}
public static class TestArray
{
public static bool IndexCheck(this IArrayOperation arrayOperation, int index)
{
return index >= 0 && index < arrayOperation.GetArrayLength();
}
}
在这两种情况下,您可以稍后使用IArrayOperation
变量和两种方法
IArrayOperation instance = /* some concrete derived class */;
bool checkResult = instance.IndexCheck(0);
int lengthResult = instance.GetArrayLength();
您的派生类实例需要实现实际上是接口的一部分的方法,但扩展方法可用而不需要按实例实现。