【发布时间】:2015-08-14 23:21:58
【问题描述】:
例如,如果我有
class Foo{
public float this[
int index
] { get ...; set ...; }
}
....
void Bar(float[] array){...}
为什么我不能这么说?
Bar(new Foo());
有没有办法将可索引类型作为索引类型的数组传递给方法?
【问题讨论】:
-
没有。你想做的是鸭式打字,而c#不支持它。
-
它有一个索引器,但这并不能使它成为一个数组。
-
float[]永远不会与Foo具有相同的类型——这是不可能的。 -
其实我认为这是一个公平的问题。是否有可以实现的 IArray 接口,以便可以代替“真实”数组传递?我(认为)知道没有,但它不是一个不可能的功能,实际上会很有用
-
@MarcinJuraszek 这将是不完整的鸭子打字......
Length属性在哪里?数组必须能够自我描述。但是是的......“鸭子打字”是这里正在走的路。