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

نام تاپیک: تبدیل این تابع به C#‎

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    ایران
    پست
    487

    Question تبدیل این تابع به C#‎

    سلام
    میخوام این کد رو به C#‎‎‎‎‎‎‎ تبدیل کنم
    آرایه ModBusCmdArr :

    [1,6,4,49,0,50,56,248,0]


    کد vb

    Public Function CommandToSend() As String
    Dim StrCmd As String = String.Empty


    StrCmd = Convert.ToChar(ModBusCmdArr(0)) _
    & Convert.ToChar(ModBusCmdArr(1)) _
    & Convert.ToChar(ModBusCmdArr(2)) _
    & Convert.ToChar(ModBusCmdArr(3)) _
    & Convert.ToChar(ModBusCmdArr(4)) _
    & Convert.ToChar(ModBusCmdArr(5)) _
    & Convert.ToChar(ModBusCmdArr(6)) _
    & Convert.ToChar(ModBusCmdArr(7))



    Return StrCmd
    End Function


    خروجی :
    ChrW(1) & ChrW(6) & ChrW(4) & "O" & vbNullChar & "28ø"


    کد C#‎‎‎‎‎‎‎ که خودم بهش رسیدم این کده :


    public string CommandToSend()
    {
    string StrCmd = "";


    StrCmd = (Convert.ToChar(ModBusCmdArr[0])
    + Convert.ToChar(ModBusCmdArr[1])
    + Convert.ToChar(ModBusCmdArr[2])
    + Convert.ToChar(ModBusCmdArr[3])
    + Convert.ToChar(ModBusCmdArr[4])
    + Convert.ToChar(ModBusCmdArr[5])
    + Convert.ToChar(ModBusCmdArr[6])
    + Convert.ToChar(ModBusCmdArr[7])).ToString();



    return StrCmd;
    }



    خروجی :
    444


    ظاهرا درست تبدیل شده اما خروجی دو تابع برای مقادیر یکسان متفاوت هست!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    خروجی کد vb درست هست !!!!
    خروجی متد Convert.ToChar در دو زبان کاملا متفاوت هست !!!
    اگر دوستان اطلاعاتی در این مورد دارن لطفا راهنمایی کنند
    با تشکر فراوان

  2. #2

    نقل قول: تبدیل این تابع به C#‎

    نقل قول نوشته شده توسط hmahdavi921 مشاهده تاپیک
    سلام
    میخوام این کد رو به C#‎‎‎‎‎‎‎‎ تبدیل کنم
    آرایه ModBusCmdArr :

    [1,6,4,49,0,50,56,248,0]


    کد vb

    Public Function CommandToSend() As String
    Dim StrCmd As String = String.Empty


    StrCmd = Convert.ToChar(ModBusCmdArr(0)) _
    & Convert.ToChar(ModBusCmdArr(1)) _
    & Convert.ToChar(ModBusCmdArr(2)) _
    & Convert.ToChar(ModBusCmdArr(3)) _
    & Convert.ToChar(ModBusCmdArr(4)) _
    & Convert.ToChar(ModBusCmdArr(5)) _
    & Convert.ToChar(ModBusCmdArr(6)) _
    & Convert.ToChar(ModBusCmdArr(7))



    Return StrCmd
    End Function


    خروجی :
    ChrW(1) & ChrW(6) & ChrW(4) & "O" & vbNullChar & "28ø"


    کد C#‎‎‎‎‎‎‎‎ که خودم بهش رسیدم این کده :


    public string CommandToSend()
    {
    string StrCmd = "";


    StrCmd = (Convert.ToChar(ModBusCmdArr[0])
    + Convert.ToChar(ModBusCmdArr[1])
    + Convert.ToChar(ModBusCmdArr[2])
    + Convert.ToChar(ModBusCmdArr[3])
    + Convert.ToChar(ModBusCmdArr[4])
    + Convert.ToChar(ModBusCmdArr[5])
    + Convert.ToChar(ModBusCmdArr[6])
    + Convert.ToChar(ModBusCmdArr[7])).ToString();



    return StrCmd;
    }



    خروجی :
    444


    ظاهرا درست تبدیل شده اما خروجی دو تابع برای مقادیر یکسان متفاوت هست!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    خروجی کد vb درست هست !!!!
    خروجی متد Convert.ToChar در دو زبان کاملا متفاوت هست !!!
    اگر دوستان اطلاعاتی در این مورد دارن لطفا راهنمایی کنند
    با تشکر فراوان
    به خاطر اینکه توی C#‎ شما + زدی داره نتایج رو جمع میکنه واسه همین خروجی عدد شده
    شاید اینجوری اصلاح شه
                return Convert.ToChar(ModBusCmdArr[0]).ToString() + Convert.ToChar(ModBusCmdArr[1]).ToString() + Convert.ToChar(ModBusCmdArr[2]).ToString() + Convert.ToChar(ModBusCmdArr[3]).ToString() + Convert.ToChar(ModBusCmdArr[4]).ToString() + Convert.ToChar(ModBusCmdArr[5]).ToString() + Convert.ToChar(ModBusCmdArr[6]).ToString() + Convert.ToChar(ModBusCmdArr[7]).ToString();
    اگه همه رشته باشن + دیگه جمع نمیکنه فقط اون متن هارو به هم میچسبونه

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    ایران
    پست
    487

    نقل قول: تبدیل این تابع به C#‎

    ممنون دوست عزیز اما درست نشد
    مشکل از تفاوت خروجی Convert.ToChar در vb و C#‎‎ ناشی میشه!!!
    آخرین ویرایش به وسیله hmahdavi921 : یک شنبه 30 تیر 1398 در 20:29 عصر

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

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