Hola.
Me parece que tienes unos cuantos conceptos equivocados.
Lo primero es que tu función no devuelve ningún valor, por lo cual al declararla como int estás provocando un error del tipo "no todas las rutas devuelven un valor".
Lo segundo es que cuando vas a pasar la matríz como un parámetro no has de inicializarla en la declaración de la función, se supone que ya ha sido inicializada en el trozo de código que llama a esta.
Y lo tercero es que como no estás usando el valor de las sumas para nada más que mostrarlos, almacenarlos en una matriz es innecesario, con que almacenes el resultado de cada suma en un int es suficiente y ahorras memoria.
Te añado la clase con todo corregido y una segunda función adicional donde se devuelve la matríz de las sumas, esto es útil si te hace falta almacenar el resultado para trabajar con el más adelante.
namespace suma
{
public class sumabidi
{
public void sumabidi1(int[,] Arr1, int[,] Arr2)
{
if ((Arr1.GetLength(0) != Arr2.GetLength(0)) || (Arr1.GetLength(1) != Arr2.GetLength(1)))
throw new Exception
("Las dimensiones de las matrices no coinciden");
int suma;
for (int x = 0; x < Arr1.GetLength(0); x++)
{
for (int y = 0; y < Arr1.GetLength(1); y++)
{
suma = Arr1[x, y] + Arr2[x, y];
Console.WriteLine("Resultado suma [" + x.ToString() + "][" + y.ToString() + "] =" + suma.ToString());
Console.ReadLine();
}
}
}
public int[,] sumabidi2(int[,] Arr1, int[,] Arr2)
{
if ((Arr1.GetLength(0) != Arr2.GetLength(0)) || (Arr1.GetLength(1) != Arr2.GetLength(1)))
throw new Exception
("Las dimensiones de las matrices no coinciden");
int[,
] suma
= new int[Arr1
.GetLength(0), Arr2
.GetLength(0)];
for (int x = 0; x < Arr1.GetLength(0); x++)
for (int y = 0; y < Arr1.GetLength(1); y++)
suma[x, y] = Arr1[x, y] + Arr2[x, y];
return suma;
}
}
}
Un saludo.