如果文本框有1位數字或大於31的數字,程序將崩潰。我應該如何阻止?c#程序問題
到目前爲止,我有這樣的代碼:
if (dd.Text.Length <= 1 || dd.Text > 31)
return;
顯然,這是錯誤的... :(
如果文本框有1位數字或大於31的數字,程序將崩潰。我應該如何阻止?c#程序問題
到目前爲止,我有這樣的代碼:
if (dd.Text.Length <= 1 || dd.Text > 31)
return;
顯然,這是錯誤的... :(
dd.Text > 31
上面的代碼將一個字符串與一個int進行比較。你應該嘗試:
int val = 0;
if (Int32.TryParse(dd.Text, out val))
{
if (val > 31) return;
}
順便說一句,你不能初始化'val'到'0' - 它會通過輸出接受方法 – abatishchev 2010-09-20 13:45:51
dd.Text > 31
此行不會工作嘗試:
int.parse(dd.Text) > 31
而且如果輸入的是非數字字符,它將不會運行,您可能需要先進行消毒。
什麼是顯而易見的,你不會想到你在做什麼。
首先,您必須瞭解C#中可用的基本類型以及它們的重要性。
現在你應該閱讀關於字符串和整數。你會明白爲什麼代碼不起作用。
如果您想驗證一個文本框是否在兩個數字之間,首先它需要是數字。所以你需要把它...
然後你可以對它進行操作和比較。
String myText = textBox.Text;
int myValue = -1;
if(Int32.tryPart(myText,myValue))
if(myValue > 31)
return;
自動完成。你爲什麼用首字母順序寫出單詞You中的第一個字母?你不知道現在是怎麼做的? :P – Younes 2010-09-20 13:59:02
我的母語拼寫規則的習慣。 – 2010-09-20 14:03:04
你到底在做什麼?你是在分析一個月的哪一天?在這種情況下,你不能檢查31,因爲不是所有的月份都有31天。同樣比較一個字符串(我猜文本是一個字符串)的數字31不會像你期望的那樣工作。 – 2010-09-20 13:33:29
什麼是使用您的文本框的代碼?你在if語句的第二部分中缺少一個「.Length」。 – 2010-09-20 13:33:30