3

値を保持する外部インターフェイスから文字列を受け取りINT32ます。この値は "-100" (signed int) を表すため、文字列 "4294967196" のようになります。「-100」のように見える場合はInt32.TryParse()、符号付きの値にキャストするために使用できます。しかし、私の場合、値をそのまま解釈し、値が大きすぎる(> 2.147.483.647)ことを教えてくれます。これを機能させるための回避策はありますか?先頭の 1 が数字ではないことをパーサーに伝える方法は?

編集:不正確で申し訳ありません。受け取る値は、この「4294967196」のような文字列です。Uint32値が -100の を表します。インターフェイスが「-100」を保持する文字列を返す場合は、そのまま使用できますInt32.TryParse()。それが私が表現しようとしていたことです。

4

1 に答える 1

10

結果を使用uint.TryParse()して にキャストしintます。

string s = "4294967196";
uint ux;
int x = 0;
if (uint.TryParse(s, out ux))
{
    x = (int)ux;
}
// x = -100
于 2012-04-24T19:51:32.963 に答える