/ / Array y sobrecarga de operadores dentro de una estructura, de c ++ a c #? [cerrado] - c #, matrices, visual-c ++, estructura, sobrecarga del operador

sobrecarga de matriz y operador dentro de una estructura, de c ++ a c #? [cerrado] - c #, arrays, visual-c ++, struct, sobrecarga del operador

Intento convertir este código c ++ a c #:

struct gene
{
int alleles[4];
int fitness;
float likelihood;

// Test for equality.
int operator==(gene gn)
{
for (int i=0;i<4;i++)
{
if (gn.alleles[i] != alleles[i]) return false;
}

return true;
}
};

bcs en C # me informa que no puedo crear una matriz dentro de la estructura además del error en la sobrecarga del operador ==, entonces, ¿cómo estará en c #?

Respuestas

0 para la respuesta № 1

Los operadores en C # deben ser públicos estáticos. Además, el operador == necesita dos objetos como argumento para poder comparar, y también se debe definir un operador! = Si se debe definir un operador ==.

Prueba esto:

public struct Gene
{
int[] alleles;
int fitness;
float likelihood;

public Gene(int[] alleles) : this()
{
this.alleles = alleles;
}

// Test for equality.
public static bool operator ==(Gene gn1, Gene gn2)
{
for (int i=0; i < gn1.alleles.Length ;i++)
{
if (gn1.alleles[i] != gn2.alleles[i]) return false;
}

return true;
}

public static bool operator !=(Gene gn1, Gene gn2)
{
return !(gn1 == gn2);
}
}