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

bin*_*guy 3 c#

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

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

Ken*_*rey 10

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

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