【发布时间】:2016-03-14 17:24:34
【问题描述】:
是否可以有两个或多个索引器(或类似的东西)具有相同的签名?
所以它看起来像这样
private int[,] X;
public int this[int a]
{
set
{
X[a, 0] = value;
}
}
public int this[int a]
{
set
{
X[a, 1] = value;
}
}
这会产生错误,因为这两种方法都是无名的并且具有相同的签名。那么是否可以命名这些方法但保留设置值的能力。即
C.FirstCol(2) = 3; //Same as C.X[2,0] = 3
C.SecondCol(5) = 4; //Same as C.X[5,1] = 4
编辑:我会尝试更好地解释它:
C.SetX(value) 行可以使用属性更改为C.X = value。
C.Set(num, value) 行可以使用索引器更改为C[num] = value
我要问的是如何更改这些行
C.SetA(num, value)
C.SetB(num, value)
到
C.A[num] = value
C.B[num] = value
或者
C.A(num) = value
C.B(num) = value
没有 A 或 B 作为数组
【问题讨论】:
-
如果他们有相同的签名,编译器怎么知道你想调用哪一个?
-
不,我认为你甚至不能拥有 byte 和 int,因为存在隐式转换