Tengo el siguiente código:
Código C#:
Ver original
public partial class Window1 : Window { int[,] A, B, At, Bt; public Window1() { InitializeComponent(); } private void btnCrearMatrices_Click(object sender, RoutedEventArgs e) { int n = Convert.ToInt32(txtN.Text); A = TrabajaMatriz.crearMatriz(n); B = TrabajaMatriz.crearMatriz(n); txtRes.Text += "Matriz A:\n" + TrabajaMatriz.mostrarMatriz(A) + "\n"; txtRes.Text += "Matriz B:\n" + TrabajaMatriz.mostrarMatriz(B) + "\n"; } }
Y mi clase TrabajaMatriz:
Código C#:
Ver original
static class TrabajaMatriz { public static int[,] crearMatriz(int tam) { Random x = new Random(); int[,] M = new int[tam, tam]; for (int i = 0; i < tam; i++) { for (int j = 0; j < tam; j++) { M[i, j] = x.Next(1, 10); } } MessageBox.Show(Convert.ToString(tam)); return M; } public static string mostrarMatriz(int[,] M) { string res = ""; int lim = M.GetLength(0); for (int i = 0; i < lim; i++) { for (int j = 0; j < lim; j++) { res += Convert.ToString(M[i, j]) + " "; if (j == lim - 1) { res += "\n"; } } } return res; } }
Se supone que debe imprimirme 2 matrices diferentes, pero siempre salen duplicadas. Si antes del return en crearMatriz() agrego un MessageBox o algo, todo funciona como debe ser. No entiendo qué pasa.