C# 接口可以实现列表或数组吗?如果是这样,如何?
Can C# interfaces implement lists or arrays? If so, how?
我正在翻译一堆打字稿 类 和 C# 接口(对于那些想知道为什么的 javascript 互操作)
一个我不确定如何从打字稿翻译的例子是这样的:
interface CellArray extends Array<Cell> {
addClass(className: string): CellArray;
removeClass(className: string): CellArray;
html(html: string): CellArray;
invalidate(): CellArray;
}
如果我没看错的话,该接口正在扩展单元格数组的类型...同时还有一些 return 方法。
有没有办法将其转换为 C#?
谢谢!
C# 接口不能直接继承自列表(因为它们是 classes)- 但它们可以继承自任何接口,例如 IList
或 IEnumerable
:
数组是一个 class,它继承自 IList
和 IEnumerable
。所以你可以继承自 IList<T>
public interface Test<T> : IList<T>
{
// code here
}
或者您可以继承自 IEnumerable
:
public interface Test<T> : IEnumerable<T>
{
// code here
}
我正在翻译一堆打字稿 类 和 C# 接口(对于那些想知道为什么的 javascript 互操作)
一个我不确定如何从打字稿翻译的例子是这样的:
interface CellArray extends Array<Cell> {
addClass(className: string): CellArray;
removeClass(className: string): CellArray;
html(html: string): CellArray;
invalidate(): CellArray;
}
如果我没看错的话,该接口正在扩展单元格数组的类型...同时还有一些 return 方法。
有没有办法将其转换为 C#?
谢谢!
C# 接口不能直接继承自列表(因为它们是 classes)- 但它们可以继承自任何接口,例如 IList
或 IEnumerable
:
数组是一个 class,它继承自 IList
和 IEnumerable
。所以你可以继承自 IList<T>
public interface Test<T> : IList<T>
{
// code here
}
或者您可以继承自 IEnumerable
:
public interface Test<T> : IEnumerable<T>
{
// code here
}