int resultid;
Int32.TryParse(collection["id"],out resultid);
的值在未來collection["id"]
但resultid表示0爲某些值大於8位數字。所以,我試着用長也是同樣的問題,得到resultid
爲0
。可以請建議嗎?爲什麼Int32.Tryparse不能返回正確的值?
int resultid;
Int32.TryParse(collection["id"],out resultid);
的值在未來collection["id"]
但resultid表示0爲某些值大於8位數字。所以,我試着用長也是同樣的問題,得到resultid
爲0
。可以請建議嗎?爲什麼Int32.Tryparse不能返回正確的值?
的TryParse返回true或false表示成功。 out參數的值用於解析的值,或者在失敗時使用0。所以:
int value;
if (Int32.TryParse(someText, out value))
{
// Parse successful. value can be any integer
}
else
{
// Parse failed. value will be 0.
}
所以,如果你在「0」的通過,將執行第一個塊,而如果你在「壞號」通過將執行第二塊。
你沒有提到的使用究竟是什麼collection["id"]
但..
從Int32.TryParse Method (String, Int32)
此方法返回時,包含了32位有符號整數 相當於包含在數S,如果轉換成功, 或零,如果轉換失敗。
看起來像你的談話失敗,因爲你的collection["id"]
是大於Int32.MaxValue
但因爲你沒有告訴我們更多的信息,這幾乎是不可能給出確切的答案..
Int64
也有TryParse
方法,我認爲它可以保持你的價值;
int resultid;
bool success = Int64.TryParse(collection["id"], out resultid);
string s1 = "1234";
string s2 = "1234.65";
string s3 = null;
string s4 = "123456789123456789123456789123456789123456789";
success = Int32.TryParse(s1, out result); //-- success => true; result => 1234
success = Int32.TryParse(s2, out result); //-- success => false; result => 0
success = Int32.TryParse(s3, out result); //-- success => false; result => 0
success = Int32.TryParse(s4, out result); //-- success => false; result => 0
不錯的例子,但有點上下文會有所幫助 –
什麼是'集[ 「ID」]的值爲'到底是什麼? –
張貼的無法解析將是有益的 – Steve
零是整數默認值,這些值的例子,所以這意味着你是把錯誤的值和的TryParse失敗。這就是爲什麼resultid是0 – wudzik