私は C++ 開発者で、最近 C# に移行しました。私はに取り組む必要があるwpfアプリに取り組んでいますString.Format。私の C++ アプリケーションではsprintf、結果を取得するために使用していましたが、C# に関しては、string.format がそれを達成するのに役立ちました。今、私は同様のことを異なる値で達成する必要があるというトリッキーな状況に遭遇しました。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));
}
とbuffer[0] = 20;
                buffer[1] = 30;
                buffer[2] = 40;
                buffer[3] = 50;はm_apiResponseテキストボックスです。
役に立ちましたstring.formatが、私はむしろ簡単な方法を選びます。次のようにC#でこれを行いました:
Response1Box = buffer[0].ToString("X2");
Response2Box = buffer[1].ToString("X2");
Response3Box = buffer[2].ToString("X2");
Response4Box = buffer[3].ToString("X2");
それはうまく機能し、私が望んでいた答えをくれました。しかし今、私は私のC++アプリでそれのねじれたバージョンに出くわしました.....コードは次のとおりです:
unsigned char buffer[8] = {};
char verString[64] = {};
m_msp430->WriteInternalCommand(cmd, 1, buffer);
m_msp430->ReadInternalCommand(cmd, 4, buffer);
sprintf(verString, "FPGA 0x42 Version (dd/mm/yyyy ID): %02d/%02d/20%02d %02d", ((buffer[3] & 0xF8) >> 3), 
            (buffer[2] & 0x0F), ((buffer[2] & 0xF0) >> 4), (buffer[3] & 0x07));
m_versionString->setText(String(verString), false);
ここで、m_versionString はラベルであり、このステートメントが実行されると、eg が出力されFPGA 0x42 Version (dd/mm/yyyy ID): 00/00/2012 23ます。次のようにC#で試しました:
// Description of VersionString label which displays
    private string _VersionString;
    public string VersionString
    {
        get
        {
            return _VersionString;
        }
        set
        {
            _VersionString = value;
            OnPropertyChanged("VersionString");
        }
    }
    public void GetVersion()
    {
        int cmd = 0x0A42;
        Byte[] buffer = new Byte[8];
        Byte[] verString = new Byte[64];
        mComm.WriteInternalCommand(cmd, 1, ref buffer);
        mComm.ReadInternalCommand(cmd, 4, ref buffer);            
        // Failing to figure out how to achieve it
        VersionString = Convert.ToString(verString);
    }
これらの操作を実行して VersionString に表示するにはどうすればよいですか?? :) 助けてください :)