C#-如何过载[](两个方形制动器)
我想用字段创建我的C#-如何过载[](两个方形制动器),c#,properties,operators,overloading,C#,Properties,Operators,Overloading,我想用字段创建我的矩阵类:double[][]u元素, 但是我不知道如何为get和set编写属性[]]: 为什么不创建一个带有两个参数的索引器呢 public double this[int i, int j] { get { return _elements[i][j]; } set { _elements[i][j] = value; } } 用法: var myValue = myInstance[1, 4]
矩阵类
:double[][]u元素
,
但是我不知道如何为get
和set
编写属性[]]
:
为什么不创建一个带有两个参数的索引器呢
public double this[int i, int j]
{
get
{
return _elements[i][j];
}
set
{
_elements[i][j] = value;
}
}
用法:
var myValue = myInstance[1, 4];
这是您需要的
索引器
:
public double this[int x, int y]
{
get { return _elements[x][y]; }
set { _elements[x][y] = value; }
}
要获得一个看起来像这样的索引属性,您需要执行以下操作
public class YourClass
{
private double[][] _elements;
public double[] this[int index]
{
get
{
return _elements[index];
}
set
{
_elements[index] = value;
}
}
}
这将允许类似于
var instance = new YourClass();
var d = instance[0][1];
instance[0][1] = 2.5;
尽管在这一点上,您需要对索引范围进行更改,并且可能应该在另一个属性中公开
\u element.Length
。基于OP的\u elements
属性似乎应该是double[]
类型。假设arr
是double[]
返回类型应为double[]
而不是double
。
var instance = new YourClass();
var d = instance[0][1];
instance[0][1] = 2.5;