0

2つ質問があります!

最初の質問...

StreamReader と WebRequest を使用して、ファイルから文字列をダウンロードしています。私が次のものを受け取ったとしましょう:

Test=0x01
Stack=0x03
Recv=0x0B

今、私はそれらをすべて分割するために次のことを行います。

var result = Regex.Split(file, "\r\n|\r|\n");

        foreach (string op in result)
        {
            string[] splitop = Regex.Split(op, "=");
            RecvOpcodes.Add(new Opcode(splitop[1], short.Parse(splitop[0])));
        }

Opcode は String、Short の引数を受け取ります。たとえば、最初のものは Test,0x01 になります。

問題は、何らかの理由で解析に失敗することです。入力文字列が正しい形式ではないと表示されますが、それはなぜですか?

2番目の質問..

リストがあります。

    public static List<Opcode> SendOpcodes = new List<Opcode>();

Opcode は String、Short のクラスです。

 public class Opcode
{
    private string name;
    private short header;

    public Opcode(string nm, short hd)
    {
        name = nm;
        header = hd;
    }
}

今..オペコードの名前だけを使用して短いものを取得できるようにしたいと考えています。たとえば、そのリストに項目がある場合:

Migrate 0x0B  (Migrate is the string, 0x0B is the short)

Migrate 名のみを使用して 0x0B を取得したいのですが、どうすればよいですか?

ありがとう!

4

2 に答える 2

3

交換するだけ

RecvOpcodes.Add(new Opcode(splitop[1], short.Parse(splitop[0])));

RecvOpcodes.Add(new Opcode(splitop[1], Convert.ToInt16(splitop[0],16)));

詳細:クラスの変換

于 2013-09-13T09:04:17.073 に答える