PDA

View Full Version : سوال: آیا در اینجا لازمه که تابع و کلاس همنام باشند؟



sahel65
یک شنبه 18 اردیبهشت 1390, 14:45 عصر
سلام دوستان؛
این برنامه ای که نوشتم:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class MyRectangle
{
int x, y;
int GetArea()
{
return x * y;
}
public MyRectangle(int x, int y)
{
this.x = x;
this.y = y;

}
static void Main(string[] args)
{
MyRectangle rec = new MyRectangle(10,20);
Console.WriteLine(rec.GetArea());

}
}
}





چندتا سوال ازتون داشتم

راستش چون زیاد کار نکردم برام این سوالات پیش اومده

توی این برنامه ای که برای مثال آوردم الان MyRectangle یک کلاس هست دیگه درسته؟

الان توی اینجا GetArea یک تابع است دیگه ، آره؟

و در این قسمت این هم یک تابعه؟




public MyRectangle(int x, int y)
{
this.x = x;
this.y = y;

}





یا یک کلاس؟ اونوقت این قسمت حتما باید همنام با کلاس باشه؟ نمیشه یه اسم دیگه براش بذارم؟

اونوقت کلمه کلیدی this رو میشه بیشتر توضیح بدید؟ الان اگه من در تعریف x,y از private استفاده می کردم چون توی کلاس جاری هستم میتونم ازشون استفاده کنم یا نه؟

hossein2007
یک شنبه 18 اردیبهشت 1390, 15:27 عصر
MyRectangle یک تابع نیست بلکه سازنده کلاس است.
در مورد سازنده کلاس، مطالب زیادی می تونی پیدا کنید.

f4rib0rz
یک شنبه 18 اردیبهشت 1390, 15:37 عصر
class MyRectangle //کلاس
{
int x, y;
int GetArea() //تابع
{
return x * y;
}
public MyRectangle(int x, int y) //سازنده کلاس
{
this.x = x;
this.y = y;

}
static void Main(string[] args) //تابع
{
MyRectangle rec = new MyRectangle(10,20);
Console.WriteLine(rec.GetArea());

}
}


موفق باشی.

Directx
یک شنبه 18 اردیبهشت 1390, 15:45 عصر
دوست عزیز لطفا با مطالعه جواب بدید هر کلاسی ممکنه که یک یا چند constructor (سازنده) داشته باشه که باید همنام کلاس باشه در غیر اینصورت که بهش سازنده نمی گن در ضمن نباید هیچ مقداری برگردونه(حتی void)

f4rib0rz
یک شنبه 18 اردیبهشت 1390, 17:55 عصر
[/URL]دوست عزیز [URL="http://barnamenevis.org/member.php?182632-Directx"]Directx (http://barnamenevis.org/member.php?182632-Directx) تشکر برای تذکری که دادی اره من اشتباه جواب داده بودم اصلا توجه نکرده بودم ....