gpt4 book ai didi

c# - 无法在 C# 中使用 String.Format

转载 作者:搜寻专家 更新时间:2023-10-31 00:00:28 25 4
gpt4 key购买 nike

我是一名 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));
}

其中缓冲区[0] = 20;
缓冲器[1] = 30;
缓冲器[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 是我绑定(bind)的文本框:

// Description of Response1Box
private string _Response1Box;
public string Response1Box
{
get
{
return _Response1Box;
}

set
{
_Response1Box = value;
OnPropertyChanged("Response1Box");
}
}

buffer[64] 是 byte[]。

它没有像我的 C++ 方法那样给我预期的答案。这是正确的做法吗:string bufstring = String.Format("{0:02}", buffer[i]);
t_str = Encoding.UTF8.GetBytes(bufstring);
我哪里错了???

请帮忙:)

最佳答案

尝试

string bufstring = String.Format("{0:D2}", buffer[i]);

或(十六进制输出)

string bufstring = String.Format("{0:X2}", buffer[i]);

或(带有 C/C++ 风格的十六进制前缀)

string bufstring = String.Format("0x{0:X2}", buffer[i]);

参见 Composite FormattingStandard Numeric Format strings

当然,在您调用 m_apiResponse[i]->setText 的 C++ 循环中,您应该在 C# 循环中执行类似的操作以获得相同的结果。

string[] response = new TextBox[] {Response1Box, Response2Box, Response3Box, Response4Box};
for (int i = 0; i < 4; i++)
response[i] = String.Format("{0:X2}", buffer[i]);

更新:我不清楚 ResponseBox 是什么,但是如果在名为 ResponseBox 的对象实例中有 4 个名为 Response[X]Box 的字符串属性,那么您可以通过这种方式在循环外设置这些属性

ResponseBox.Response1Box = response[0];
ResponseBox.Response2Box = response[1];
.......

关于c# - 无法在 C# 中使用 String.Format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com