public static int[,] operator *(int[,] arr1, int[,] arr2)
{
int sum;
int[,] res = new int[arr1.GetLength(0), arr2.GetLength(1)];
for (int i = 0; i < arr1.GetLength(0); i++)
{
for (int j = 0; j < arr2.GetLength(1); j++)
{
sum = 0;
for (int k = 0; k < arr1.GetLength(1); k++)
{
sum = sum + (arr1[i, k] * arr2[k, j]);
}
res[i, j] = sum;
//Console.Write("{0} ", res[i, j]);
}
//Console.WriteLine();
}
return res;
}
Here i * Betreiber zu überlasten versuche zwei Matrizen zu multiplizieren .. aber der Compiler hält mir den Fehler zeigt, dass ..einer der Parameter eines Binäroperators müssen die enthaltenen Typ C# sein
„einer der Parameter eines Binäroperators muss der enthaltende Typ C# sein“
bitte sagen Sie mir, was das Problem in meinem Code ist und wie es zu lösen ..
Der Compiler sagt Ihnen genau das Problem - Sie dürfen keine willkürlichen Operatoren überladen ... Sie können Operatoren nur überlasten, wenn einer der Operanden (oder der Rückgabetyp für eine Konvertierung) der Typ ist, in dem Sie erklären den Operator –
Ich muss zugeben, ich war zunächst verwirrt wie OP war, wie aus C++ (denke freie Funktionen). Aber herausgefunden, dass C# nicht so permissiv wie C++ ist. – mireazma