نقل قول mfathi
سلام من دارم برنامه زیر رو مینویسم یک خطش رو که مشخص کردم خطا داره علت این خطا چیه؟
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
public class matrix
{
public const int row = 3;
public const int cloumn = 3;
public int[,] mat = new int[row, cloumn];
public void aader()
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.WriteLine("enter[{0},{1}]", i, j);
string str = Console.ReadLine();
int x = Convert.ToInt32(str);
mat[i, j] = x;
}
}
}
}
class Program
{
static void Main()
{
matrix matrix1 = new matrix();
matrix matrix2 = new matrix();
Console.WriteLine("ماتریس اول");
matrix1.aader();
Console.WriteLine("ماتریس دوم");
matrix2.aader();
Console.WriteLine("حاصل جمع ماتریس ها");
int[,] mat3 = new int[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
mat3[i, j] = matrix1[i, j] + matrix2[i, j];// خطای برنامه در اینجاس؟
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.WriteLine("matrix[{0},{1}]={2}", i, j, mat3[i, j]);
}
}
}
}
}
با سلام و احترام
مشکل از اینجاست که دارید کلاس ماتریس رو با i و j فراخوانی می کنید که اصلاً چنین چیزی وجود نداره .
بهتر است به جای کد
mat3[i, j] = matrix1[i, j] + matrix2[i, j];
از کد زیر استفاده کنید .
mat3[i, j] = matrix1.mat[i, j] + matrix2.mat[i, j];
آرایه mat در واقع همون آرایه ای هست که شما داده ها رو دارید درون اون می ریزید پس هنگام فراخوانی باید از همون آرایه ، داده ها رو دریافت کنید نه از کلاس اصلی.
منتظر پاسخ شما هستم
با تشکر / موفق باشید