C#将字符串解析为int32 – 值太大

我从外部接口接收一个字符串,该字符串保存INT32值。 此值表示“-100” – 一个带符号的int – 因此看起来像这个字符串“4294967196”。 如果它看起来像“-100”,我可以使用Int32.TryParse()将其转换为有符号值。 但在我的情况下,它按原样解释值,并告诉我该值太大(> 2.147.483.647)。 让这个工作的任何解决方法? 如何告诉解析器前导1不是数字?

编辑:抱歉不准确。 我收到的值是一个看起来像这个“4294967196”的字符串。 它表示值为-100的Uint32 。 如果接口返回一个保存“-100”的字符串,则可以使用Int32.TryParse() 。 这就是我想要表达的。

使用uint.TryParse()并将结果转换为int

 string s = "4294967196"; uint ux; int x = 0; if (uint.TryParse(s, out ux)) { x = (int)ux; } // x = -100