我是一名 C++ 开发人员,上周转到 wpf。好吧,我在我的 c++ 应用程序中使用了 sprintf 很多次,现在我需要在 C# 中使用与它等效的东西。这是我所做的是C++:
char t_str[4] = {};
for(int i = 0; i < 4; i++)
{
sprintf(t_str, "%02X", buffer[i]);
m_apiResponse[i]->setText(String(t_str));
}
wherebuffer[0] = 20;
buffer[1] = 30;
buffer[2] = 40;
buffer[3] = 50;
和m_apiResponse
是一个文本框。
我在我的 C# 中这样做了,如下所示:
Byte[] t_str = new Byte[4];
for (int i = 0; i < 4; i++)
{
string bufstring = String.Format("{0:02}", buffer[i]);
t_str = Encoding.UTF8.GetBytes(bufstring);
}
Response1Box = Convert.ToString(t_str[0]);
Response2Box = Convert.ToString(t_str[1]);
Response3Box = Convert.ToString(t_str[2]);
Response4Box = Convert.ToString(t_str[3]);
其中 ResposeBox 是我绑定到的文本框:
// Description of Response1Box
private string _Response1Box;
public string Response1Box
{
get
{
return _Response1Box;
}
set
{
_Response1Box = value;
OnPropertyChanged("Response1Box");
}
}
buffer[64]
是字节[]。
它没有给我我的 C++ 方法所做的预期答案。这是正确的做法吗:string bufstring = String.Format("{0:02}", buffer[i]);
t_str = Encoding.UTF8.GetBytes(bufstring);
我错在哪里???
请帮忙 :)