PDA

View Full Version : حرفه ای: برگردوندن یه شی بجز string و int از method



sinashahab
شنبه 02 مرداد 1389, 20:07 عصر
سلام دوستان

ما در حال نوشتن یه بازی بودیم که به این مشکل بر خوردم . می خواستم ببینم کسی بین شما جوابشو بلد هست یا نه :
اونم اینکه من در حال تعریف یه کلاس به این مشکل بر خوردیم :
در این کلاس ما باید یه متد تعریف می کردیم که یه چیز به جز string و int و .... بر گردونیم .
خوب ما هر راهی که می شد رو تست کردیم . مثلا این کد :
توی این کد اون شی رو توی arraylist میریزیم بعدش برمی گردونیم که بازم نمیشه.

public ArrayList UpdateFrame()
{
return arraylist;
}
یا

public object UpdateFrame()
{

بازم نشد .

ممنون میشم بگید کجاش سوتی دادم ؟:خجالت:

jalalx
شنبه 02 مرداد 1389, 20:19 عصر
کد شما مشکلی نداره!
لطفا توضیحات یا کد کاملتری بزارید.

Saeed.Masoumi
شنبه 02 مرداد 1389, 22:41 عصر
سلام دوستان

ما در حال نوشتن یه بازی بودیم که به این مشکل بر خوردم . می خواستم ببینم کسی بین شما جوابشو بلد هست یا نه :
اونم اینکه من در حال تعریف یه کلاس به این مشکل بر خوردیم :
در این کلاس ما باید یه متد تعریف می کردیم که یه چیز به جز string و int و .... بر گردونیم .
:خجالت:
سلام می خواین چی بر گردونید؟؟
مثلا اینو ببینید:


private object Method()
{
object ReturnValue = null;
return ReturnValue;
}


اگه از این روش استفاده می کنید باید نوع داده ای را که می خواهید باکسینگ و آنباکسینگ کنید.اگر نوع داده شما غیر استاندارد است می توانید
Extension method (http://barnamenevis.org/forum/showpost.php?p=830946&postcount=2) استفاده کنید.
یا مثلا می شه نوع بازگشتی رو از یک نوع کلاس در نظر گرفت:(فقط مثال است...)


class MyClass
{
public MyClass()
{
}
public MyClass Method()
{
return this;
}
}


یا منظورتون این بود!!؟یا من سوال رو متوجه نشدم...

sinashahab
یک شنبه 03 مرداد 1389, 00:50 صبح
ممنون دوست عزیز

مثلا توی همین کد شما :

public Myclass method()
{

}

خوب ولی من اسم کلاسی که شی خودمو می خوام از متد برگرده می زارم ولی جواب نمیده !
مثلا :

public MySqlDataReader method()
{
MqSqlDaraReader data = new ,,,,
return data;
}

این باید جواب بده ولی نمیده .

فهمیدید چی شد ؟

FastCode
یک شنبه 03 مرداد 1389, 09:39 صبح
لطفا" تکه کد کاملتری بزارید.تا مشکلتون رو پیدا کنیم.

exlord
یک شنبه 03 مرداد 1389, 10:32 صبح
ممنون دوست عزیز

مثلا توی همین کد شما :

public Myclass method()
{

}خوب ولی من اسم کلاسی که شی خودمو می خوام از متد برگرده می زارم ولی جواب نمیده !
مثلا :

public MySqlDataReader method()
{
MqSqlDaraReader data = new ,,,,
return data;
}این باید جواب بده ولی نمیده .

فهمیدید چی شد ؟
جواب نمیده یعنی چی ؟؟ null برمیگردونه ؟؟ exception میده ؟؟ چی ؟

sinashahab
یک شنبه 03 مرداد 1389, 12:40 عصر
قبل از debuging این اررور رو میده :

windowsFormsApplication1.MyClass.UpdateFrame(); not all code paths return a value
اینو توی همون اررور باکس میزنه .

راستی یه چیزو الان متوجه شدم اونم اینکه این کد رو وقتی این متد رو در فرم اصلی ام میزارم جواب میده ولی وقتی توی کلاسی که دارم تعریف می کنم نه !!

اگه متوجه نشدید پروژه بزارم ؟؟

sinashahab
یک شنبه 03 مرداد 1389, 14:26 عصر
اوه فهمیدیم مشکل چیه !

اصلا مشکل کد و این حرفا نبوده .
حواسم نبوده توی این متد مقدار برگشتی رو با شرط گذاشته بودم !:لبخند:

ممنون از همه ی شما . این اررور هم برای همین بوده .
اگه کسی برخورد ( که بر نمی خوره کسی :لبخند:) جوابشم اینه که return باید همیشه وجود داشته باشه یا حداقل اگه شرط هم می زارید با else ادامه بدید .