PDA

View Full Version : سوال: null وارد کردن ورودی توابع



batman1
دوشنبه 02 فروردین 1395, 05:43 صبح
سلام به همه.
دوستان،من یک کلاسی دارم که چندتا ورودی داره:
139669
حالا من در دوجا این کلاس رو فراخوانی میکنم،به طوری که یکی از این فراخونی ها،باید دوتا از ورودی های کلاس رو ارسال کنه و یکیشون،سه تا از ورودی ها رو.
139670
حالا من ورودیه سوم رو در فراخوانیه اول،نال یا صفر میزنم،اما خطا میده که ورودی نمیتونه نال باشه.
من برای ساخت جدول فقط از یک تابع میتونم استفاده کنم.
ممنون میشم راهنماییم کنید که چه طور میتونم این خطا را برطرف کنم.

meysam_online2012
دوشنبه 02 فروردین 1395, 06:52 صبح
دوست عزیز بجای int idTbls از این استفاده کن ببین درست میشه


int? idTbls

ali_md110
دوشنبه 02 فروردین 1395, 07:16 صبح
میتونید از پارامترهای اختیاری استفاده کنید
یعنی آخرین پارامترها را در هنگام تعریف یا پیاده سازی تابع مقدار دهی اولیه کنید


public void createTbl(string name,string title ,int id=0)
{
بقیه کدها
}


چنانچه در هنگام صدا زدن تابع آخرین پارامتر یعنی id ذکر نشود همون مقدار صفر محاسبه میشه

batman1
دوشنبه 02 فروردین 1395, 13:53 عصر
میتونید از پارامترهای اختیاری استفاده کنید
یعنی آخرین پارامترها را در هنگام تعریف یا پیاده سازی تابع مقدار دهی اولیه کنید


public void createTbl(string name,string title ,int id=0)
{
بقیه کدها
}


چنانچه در هنگام صدا زدن تابع آخرین پارامتر یعنی id ذکر نشود همون مقدار صفر محاسبه میشه
نه،من فقط از این دوخط استفاده نمیکنم،میخوام این کلاس رو چندبار صدا بزنم.
هردفعه هم چندتا از ورودی ها نال هستند(نال بودن ورودی ها متغیر است.یعنی گاهی ۲تاش نال میشه و گاهی یه دونه و...)
درضمن،ورودی ها بیشتر از این ها هستن.این فقط یه نمونس.

CsharpNevisi
سه شنبه 03 فروردین 1395, 18:17 عصر
بهترین راه نویشن Overload هستش




private void testMethos(string name, string family, int age)
{
//Do some things
}


private void testMethos(string name, string family)
{
//Do some things
}


private void testMethos(string name, int age)
{
//Do some things
}


private void actionFired()
{
testMethos("", "", 0);
testMethos("", "");
testMethos("", 0);
}

batman1
چهارشنبه 04 فروردین 1395, 06:31 صبح
بهترین راه نویشن Overload هستش




private void testMethos(string name, string family, int age)
{
//Do some things
}


private void testMethos(string name, string family)
{
//Do some things
}


private void testMethos(string name, int age)
{
//Do some things
}


private void actionFired()
{
testMethos("", "", 0);
testMethos("", "");
testMethos("", 0);
}

دوست عزیز،میشه یه ذره توضیح بدید؟

batman1
چهارشنبه 04 فروردین 1395, 06:32 صبح
دوست عزیز بجای int idTbls از این استفاده کن ببین درست میشه


int? idTbls



نمیشه دوست عزیز

CsharpNevisi
چهارشنبه 04 فروردین 1395, 11:22 صبح
ببین تو میتونی چندتا متد داشته باشی هم نام . با خروجی های یکسان .. ولی با پارامترهای مختلف ... مثلا یه متد عدد بگیره یه متد رشته ... تو وقتی داری عدد بهش پاس میدی مستقیم میره تو تابعی که ورودی عدد داره و وقتی رشته پاس میدی مستقیم میره تو تابعی که ورودی رشته داره .. این من سه تا متد بالا رو نوشتم .. نگاه کن این عکسو

139684

حالا اینیکی رو نگاه کن
139685
نمونش رو توی کتابخانه دات نت هم میتونی ببینی
139686

batman1
شنبه 07 فروردین 1395, 11:32 صبح
ببینید،من در اصل میخوام با کدنویسی جدولامو بسازم.
مشکل اینجاست که نمیشه خالی یا نال براش بفرستی،خطا میده.
اونو چی کارش کنم؟!