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

نام تاپیک: مقدار برگشتی تابع کجا باید قرار بگیره؟

  1. #1
    کاربر دائمی آواتار kingtak
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اینترنت
    پست
    231

    Question مقدار برگشتی تابع کجا باید قرار بگیره؟

    با سلام دوستان من قبلا کدی نوشتم والان میخوام اونو تبدیل به دو قسمت بکنم.یک قسمت مسئول پینگ کرن و قسمت دیگه مسئول نمایش پینگ ها.ولی دستور return تابع دوم خطا میگیره!!

    namespace patrPing
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    PingShower();

    }

    public void PingShower()
    {
    PingReply replayResult = PingSender();
    if (replayResult.Status == IPStatus.Success)
    {
    listBox1.Items.Add(replayResult.Address.ToString() + " Is Online");
    }
    }

    public PingReply PingSender()
    {
    IPAddress[] ipList = new IPAddress[5];
    ipList[0] = IPAddress.Parse("74.125.225.193");
    ipList[1] = IPAddress.Parse("74.125.225.192");
    ipList[2] = IPAddress.Parse("174.36.84.92");
    ipList[3] = IPAddress.Parse("24.246.192.8");
    ipList[4] = IPAddress.Parse("69.55.53.89");

    foreach (IPAddress address in ipList)
    {
    Ping pingSender = new Ping();
    PingReply replay = pingSender.Send(address);
    }
    return replay;
    }
    }
    }



    چرا replay رو نمیشناسه؟

    یه سوال دیگه:
    آیا امکان داده هر متد توسط یک ترد اجرا بشه؟یعنی یک ترد تابع پینگ رو بگردونه و یکیش متد نماش رو؟(قاطی نمیکنه؟)

  2. #2
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    چون تو بلاک foreach تعریف شده
    تو بیرن از بلاک به صورت null تعریف کن بعد return کن
    بعد اونور چک کن که یه وقت خالی بر نگرده

  3. #3
    کاربر دائمی آواتار kingtak
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اینترنت
    پست
    231

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    نمیدونم منظورتون رو درست متوجه شدم یا نه و لی با این کار فقط یک آی پی نشون داده می شه

    public PingReply PingSender()
    {
    IPAddress[] ipList = new IPAddress[5];
    ipList[0] = IPAddress.Parse("74.125.225.193");
    ipList[1] = IPAddress.Parse("74.125.225.192");
    ipList[2] = IPAddress.Parse("174.36.84.92");
    ipList[3] = IPAddress.Parse("24.246.192.8");
    ipList[4] = IPAddress.Parse("69.55.53.89");
    PingReply replay = null;
    foreach (IPAddress address in ipList)
    {
    Ping pingSender = new Ping();
    replay= pingSender.Send(address);
    }
    if (replay == null)
    listBox1.Items.Add("replay is nill");
    return replay;
    }

  4. #4
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    خب اطلاعات رو باید بریزید تو ارایه بعد return کنید

  5. #5
    کاربر دائمی آواتار kingtak
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اینترنت
    پست
    231

    Question نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    چطوری باید آرایه رو پر کنم؟
    با این کد دستو return خطا می گیره....

    public PingReply PingSender()
    {
    IPAddress[] ipList = new IPAddress[5];
    ipList[0] = IPAddress.Parse("74.125.225.193");
    ipList[1] = IPAddress.Parse("74.125.225.192");
    ipList[2] = IPAddress.Parse("174.36.84.92");
    ipList[3] = IPAddress.Parse("24.246.192.8");
    ipList[4] = IPAddress.Parse("69.55.53.89");
    PingReply[] ReturnList = new PingReply[5];
    foreach (IPAddress address in ipList)
    {
    Ping pingSender = new Ping();
    ReturnList[0] = pingSender.Send(address);
    ReturnList[1] = pingSender.Send(address);
    ReturnList[2] = pingSender.Send(address);
    ReturnList[3] = pingSender.Send(address);
    ReturnList[4] = pingSender.Send(address);
    }
    if (ReturnList == null)
    listBox1.Items.Add("replay is null");
    return ReturnList;
    }
    }

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    خروجیش شما از نوع آرایه ست.تایپ خروجی تابع رو درست کنین:

    public PingReply[] PingSender()
    {
    ...
    ...
    ...
    }

  7. #7
    کاربر دائمی آواتار kingtak
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اینترنت
    پست
    231

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    Untitled-1.png
    اصلا من با این آرایه مشکل دارم.همونطور که می بینید متد فقط آخرین آی پی رو پینگ می کنه.
    متد PingShower درسته؟
    یه مشکلی هم داره اینه که وقتی می خوام برنامه رو اجرا کنم یه کم(40-30 ثانیه) طول میکشه تا برنامه بالا بیاد.در حالی که من با برنامه های سنگینی کارکردم که را حت اجرا میشن.بنرتون می تونه از دو قسمت بودن تابه باشه؟


    public void PingShower()
    {
    PingReply [] replayResult = PingSender();
    foreach (PingReply ShowReplay in replayResult)
    {

    listBox1.Items.Add(replayResult[0].Address.ToString() + " Is Online");
    listBox1.Items.Add(replayResult[1].Address.ToString() + " Is Online");
    listBox1.Items.Add(replayResult[2].Address.ToString() + " Is Online");
    listBox1.Items.Add(replayResult[3].Address.ToString() + " Is Online");
    listBox1.Items.Add(replayResult[4].Address.ToString() + " Is Online");

    }
    }

    public PingReply [] PingSender()
    {
    IPAddress[] ipList = new IPAddress[5];
    ipList[0] = IPAddress.Parse("74.125.225.193");
    ipList[1] = IPAddress.Parse("74.125.225.192");
    ipList[2] = IPAddress.Parse("174.36.84.92");
    ipList[3] = IPAddress.Parse("24.246.192.8");
    ipList[4] = IPAddress.Parse("69.55.53.89");
    PingReply[] ReturnList = new PingReply[5];
    foreach (IPAddress address in ipList)
    {
    Ping pingSender = new Ping();
    ReturnList[0] = pingSender.Send(address);
    ReturnList[1] = pingSender.Send(address);
    ReturnList[2] = pingSender.Send(address);
    ReturnList[3] = pingSender.Send(address);
    ReturnList[4] = pingSender.Send(address);
    }
    if (ReturnList == null)
    listBox1.Items.Add("replay is null");
    return ReturnList;
    }
    }


  8. #8

    نقل قول: مقدار برگشتی تابع کجا باید قرار بگیره؟

    به اینصورت بنویس:
            public void PingShower()
    {
    PingReply[] replayResult = PingSender();
    if (replayResult == null)
    {
    listBox1.Items.Add("replay is null");
    }
    else
    {
    foreach (PingReply ShowReplay in replayResult)
    {
    if (ShowReplay.Status == IPStatus.Success)
    {
    listBox1.Items.Add(ShowReplay.Address + "\t" + ShowReplay.Status);
    }
    }
    }
    }

    public PingReply[] PingSender()
    {
    IPAddress[] ipList = new IPAddress[5];
    ipList[0] = IPAddress.Parse("74.125.225.193");
    ipList[1] = IPAddress.Parse("74.125.225.192");
    ipList[2] = IPAddress.Parse("174.36.84.92");
    ipList[3] = IPAddress.Parse("24.246.192.8");
    ipList[4] = IPAddress.Parse("69.55.53.89");

    PingReply[] ReturnList = new PingReply[ipList.Length];

    for (int i = 0; i < ReturnList.Length; i++)
    {
    Ping pingSender = new Ping();
    ReturnList[i] = pingSender.Send(ipList[i]);
    }

    return ReturnList;
    }

تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: سه شنبه 19 دی 1391, 00:08 صبح
  2. سوال: چگونه نوع مقدار بازگشتي تابع رو stdcall قرار بدم؟
    نوشته شده توسط bamzi software در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 30 فروردین 1390, 12:44 عصر
  3. مقدار برگشتی تابع
    نوشته شده توسط نغمه در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 15
    آخرین پست: یک شنبه 23 آبان 1389, 13:18 عصر
  4. سوال: تغییر در مقدار برگشتی تابع
    نوشته شده توسط Mask در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 6
    آخرین پست: یک شنبه 30 فروردین 1388, 19:49 عصر
  5. سوال: گرفتن مقدار برگشتی تابع جاوااسکریپت
    نوشته شده توسط ameysams در بخش PHP
    پاسخ: 4
    آخرین پست: شنبه 04 خرداد 1387, 19:51 عصر

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

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