نمایش نتایج 1 تا 6 از 6

نام تاپیک: متود های چند پارامتری

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    سن
    35
    پست
    166

    Smile متود های چند پارامتری

    با سلام
    من می خوام بدونم توی متود های چند ورودی و چند خروجی چرا ترای کچ استفاده میکنم ارور میده؟متود هایی که با کلمه ی کلیدی Out تعریف میشن.(منظورم کانسترکتور نیست)
    پس چه طور خطا یابیش کنم؟باید به صورت دستی خطایابی کرد؟
    ممنون میشم راهنماییم کنید

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: متود های چند پارامتری

    یه نمونه کد بزار.

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    سن
    35
    پست
    166

    Question نقل قول: متود های چند پارامتری


    private void Form1_Load(object sender, EventArgs e)
    {
    int P, C;
    Power(2, out P, out C);
    }
    private void Power(int x, out int p, out int c)
    {
    try
    {
    p = x * x;
    c = x * x * x;
    }
    catch (Exception Ex)
    {
    MessageBox.Show(Ex.Message .ToString ());
    }
    }
    اینم نمونه ی کدم.البته این جهت مثاله اما مال خودم مربوط به پایگاه داده میشه.
    وگرنه یه همچین متدی که خطایابی نمیخواد
    این کد به من اررور میده.برای خطایابیش باید چکار کرد؟
    با تشکر

  4. #4
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306

    نقل قول: متود های چند پارامتری

    به نظرم مشکل شما اینه :
    استفاده از بلوک Try هیچ ایرادی تو این توابع نداره . فقط باید داخل بلوک Catch هم به پارامتر هایی که از نوع Out هستند حتماً مقداری داده بشه .
    به طور کلی تابع نمیتونه بدون مقدار دهی به پارامتر های Out اجراش تموم بشه و Return کنه .
    بنابراین داخل Catch هم یه مقداری به این پارامتر ها بدید .

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: متود های چند پارامتری

    دوست عزیز در متدهایی که از پارامترهای out استفاده می شود همیشه باید درون این متد این پارامترها به نحوی مقداردهی شوند حالا شما حالتی را در نظر بگیرید که درون بلاک try قبل از این که این متدها مقداردهی شوند ، یک استثنا رخ دهد و روند اجرای برنامه به قسمت catch انتقال یابد بدون آنکه این پارامترهای out مقداردهی شده باشند.
    شما می توانید در ابتدای متد قبل از بلاک try یا درون بلاک catch به این پارامترها مقدار اولیه صفر بدهید.
    در ضمن توصیه می شود که مقدار بازگتی تابع bool تعریف شود و اگر کد به درستی اجرا شد شما در انتهای بلاک try مقدار true و یا اگر استثنایی رخ داد مقدار بازگشتی false را در قسمت catch قرار دهید. پس کد شما می تواند اینگونه اصلاح شود:

    private void Form1_Load(object sender, EventArgs e)
    {
    int P, C;
    if (Power(2, out P, out C))
    MessageBox.Show("successful");
    }
    private bool Power(int x, out int p, out int c)
    {
    try
    {
    p = x * x;
    c = x * x * x;
    return true;
    }
    catch (Exception Ex)
    {
    MessageBox.Show(Ex.Message.ToString());
    p = c = 0;
    return false;
    }
    }

  6. #6
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306

    نقل قول: متود های چند پارامتری

    جوابی که آقای mohsen_csharp گذاشتن خیلی کامله . مخصوصاً اون قسمت خروجی Bool که یه موضوع مهم و کاربردی بود که برمی گرده به تجربه و دقت ایشون .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •