نقل قول: تبدیل این تابع به 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();
اگه همه رشته باشن + دیگه جمع نمیکنه فقط اون متن هارو به هم میچسبونه
نقل قول: تبدیل این تابع به C#
ممنون دوست عزیز اما درست نشد
مشکل از تفاوت خروجی Convert.ToChar در vb و C# ناشی میشه!!!