我想创建一个扩展整数数组的类,它需要能够通过“+”运算符与另一个数组相加(每个元素相加),并通过“==”进行比较,以便在字典中用作键。我不想为我的新类实现整个IList接口,而只是将这两个运算符添加到现有的数组类中。我正在尝试做这样的事情:
没有效果。不幸的是,我不擅长接口和重写方法。至于为什么我要尝试这么做,是因为我有一些方程式,像这样:
x1 + x2 = 0.45
x1 + x4 = 0.2
x2 + x4 = 0.11
还有很多类似的方程式,我需要将第一个方程式加到第二个方程式中,并搜索所有其他方程式,以找出是否有任何匹配结果的x组合。
也许我完全走错了方向?
class MyArray : Array<int>
但很明显它并不起作用 ;).
如果我表达不清楚,对不起,我已经搜索了几个小时的解决方案...
更新:
我尝试了这样的方法:
class Zmienne : IEquatable<Zmienne>
{
public int[] x;
public Zmienne(int ilosc)
{
x = new int[ilosc];
}
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
return base.Equals((Zmienne)obj);
}
public bool Equals(Zmienne drugie)
{
if (x.Length != drugie.x.Length)
return false;
else
{
for (int i = 0; i < x.Length; i++)
{
if (x[i] != drugie.x[i])
return false;
}
}
return true;
}
public override int GetHashCode()
{
int hash = x[0].GetHashCode();
for (int i = 1; i < x.Length; i++)
hash = hash ^ x[i].GetHashCode();
return hash;
}
}
然后像这样使用:
Zmienne tab1 = new Zmienne(2);
Zmienne tab2 = new Zmienne(2);
tab1.x[0] = 1;
tab1.x[1] = 1;
tab2.x[0] = 1;
tab2.x[1] = 1;
if (tab1 == tab2)
Console.WriteLine("Works!");
没有效果。不幸的是,我不擅长接口和重写方法。至于为什么我要尝试这么做,是因为我有一些方程式,像这样:
x1 + x2 = 0.45
x1 + x4 = 0.2
x2 + x4 = 0.11
还有很多类似的方程式,我需要将第一个方程式加到第二个方程式中,并搜索所有其他方程式,以找出是否有任何匹配结果的x组合。
也许我完全走错了方向?