PDA

View Full Version : سوال: سوال در موردِ فراخوانی متد از کلاس



DumanNazeri
سه شنبه 26 فروردین 1393, 11:18 صبح
سلام. وقت بخیر. خسته نباشید.
ببخشید من تازه کارم و سوالم خیلی پیش پا افتاده است.. ولی بی نهایت ممنون میشم اگر مثل همیشه راهنماییم کنید.
من باید یه پروژه کنسول مربوط به ماتریس بنویسم که باید توش علاوه بر کلاس Program.cs یک کلاس دیگه هم باشه.
من Mat.cs رو تعریف کردم که اینجا میارمش..

public class Mat
{
int n=10;
int[,] m = new int[10, 10];
private void init()
{
Random r = new Random();
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
m[i, j] = r.Next(1, 10);


}
public Mat()
{
init();
}
public void show()
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
Console.Write(m[i, j] + " ");
Console.WriteLine();
}
}


public void Sum(Mat ob2)
{
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
m[i, j] = m[i, j] + ob2.m[i, j];
}


Program.cs هم اینطوریه :‌

class Program
{
static Mat obj1 = new Mat();


static void Main(string[] args)
{
int C;
do
{
C = MainMenu();
Console.ForegroundColor = ConsoleColor.Blue;
switch (C)
{
case 1:
obj1.show();
break;
case 2:
obj1.trans();
break;
case 3:
//مشکل اینجاست!!
break;
}
} while (C != -1);
}

همون طوری که مشاهده می کنید من در case 1 با استفاده از

obj1.show();
متد مربوط به نمایش از کلاس Mat رو فراخوانی می‌کنم..
و در case 2 هم به همین ترتیب!
مشکل در case 3 هستش٬ وقتی میخوام متد Sum مربوط به جمع رو فراخوانی کنم نمیتونم از

obj1.Sum();
استفاده کنم.
چی کار باید بکنم؟!

Davidd
سه شنبه 26 فروردین 1393, 13:08 عصر
متد sum نوشتي تا دوتا ماتريس باهم جمع كنه در حالي كه تو كدي كه در case3 نوشتي پارامتر نداره! متد sum يك پارامتر از نوع ماتريس ميگيره.

DumanNazeri
سه شنبه 26 فروردین 1393, 18:06 عصر
متد sum نوشتي تا دوتا ماتريس باهم جمع كنه در حالي كه تو كدي كه در case3 نوشتي پارامتر نداره! متد sum يك پارامتر از نوع ماتريس ميگيره.

ممنونم از لطف تون ولی خب این رو خودم می‌دونم!
فقط نمی دونم چطوری باید تغییر بدم کدم رو..
ممنون میشم اگه کدش رو برام بنویسید..
مرسی کلی.

behzadkhan
سه شنبه 26 فروردین 1393, 19:07 عصر
با سلام

آیا ماتریسی که می خواهید جمع کنید باید در همان کلاس باشد یا کلاس دیگر؟

با تشکر

DumanNazeri
سه شنبه 26 فروردین 1393, 19:34 عصر
از توجه تون سپاسگزارم.
اگر براتون مقدوره که هر دو حالت رو توضیح بدید، من بی نهایت سپاسگزار میشم..
اگر نه، فرض کنیم که ماتریس تو همون کلاس باشه..
مرسی!

behzadkhan
سه شنبه 26 فروردین 1393, 23:25 عصر
با سلام

ببین جواب می ده:
====================


static Mat obj1 = new Mat();
static Mat obj2 = new Mat();


static void Main(string[] args)
{
int C;
do
{
C = MainMenu();
Console.ForegroundColor = ConsoleColor.Blue;
switch (C)
{
case 1:
System.Console.Write("---------------------Mat1---------------------");
obj1.show();
System.Console.Write("---------------------Mat2---------------------");
obj2.show();
break;
case 2:
//obj1.trans();
//obj2.trans();
break;
case 3:
obj1.Sum(obj2);
break;
}
} while (C != -1);
}





با تشکر