Je voudrais créer ma propre classe qui étend le tableau d'ints. Est-ce possible? Ce dont j'ai besoin, c'est un tableau d'entiers qui peut être ajouté par un opérateur "+" à un autre tableau (chaque élément ajouté à chacun), et comparé par "==", de sorte qu'il pourrait (espérons-le) être utilisé comme clé dans le dictionnaire. Le fait est que je ne veux pas implémenter l'interface IList entière à ma nouvelle classe, mais seulement ajouter ces deux opérateurs à la classe de tableau existante.C# Étendre le type de tableau pour surcharger les opérateurs
Je suis en train de faire quelque chose comme ceci:
class MyArray : Array<int>
Mais il ne fonctionne pas de cette façon évidemment;).
Désolé si je suis pas clair, mais je solution la recherche d'heures maintenant ...
MISE À JOUR:
J'ai essayé quelque chose comme ceci:
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;
}
}
utilise alors comme ça :
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!");
Et aucun effet. Je ne suis pas bon avec des interfaces et des méthodes prépondérants malheureusement :(Comme pour la raison que je suis en train de le faire, j'ai quelques équations comme:..
x1 + x2 = 0,45
x1 + x4 = 0,2
x2 + x4 = 0.11
Il y en a beaucoup plus, et je dois par exemple ajouter la première équation à la seconde et chercher toutes les autres pour savoir s'il y en a qui correspondent à la combinaison de x'es résultant de cette addition
Peut-être que je vais dans le mauvais sens?
Merci, je vais essayer ça :). – Episodex
très bon point sur l'immutabilité – ShuggyCoUk
Fonctionne maintenant, merci beaucoup! – Episodex