在我的文本框中,我的值爲「07-31-2017」。我希望這個值在我的datetimepicker1上傳遞。所以datetimepicker1可以顯示我的文本框的值。C#將文本框的值傳遞給datetimepicker
在vb.net的代碼是這樣的:
dateTimePicker1.Value = Date.Parse(textbox.Text)
但在C#怎麼樣?
在我的文本框中,我的值爲「07-31-2017」。我希望這個值在我的datetimepicker1上傳遞。所以datetimepicker1可以顯示我的文本框的值。C#將文本框的值傳遞給datetimepicker
在vb.net的代碼是這樣的:
dateTimePicker1.Value = Date.Parse(textbox.Text)
但在C#怎麼樣?
dateTimePicker.Value = DateTime.Parse(textBox.Text);
僅適用於文本框中存在有效日期時間值的情況。除非你100%確定格式正確,否則我不推薦使用文本框。
還有一個TryParse()選項來確保日期時間是正確的。
DateTime newDateTime;
if (DateTime.TryParse(textBox1.Text, out newDateTime))
{
dateTimePicker1.Value = newDateTime;
}
else
{
// Datetime is invalid
}
當你在'out newDateTime'中有值時,第二次使用'.Parse()'有什麼意義? –
建設上@邁克爾的Tralala的回答是:
DateTime newDateTime;
if (DateTime.TryParse(textBox1.Text, out newDateTime))
{
dateTimePicker1.Value = newDateTime;
}
else
{
// Datetime is invalid
}
的DateTime.TryParse將取決於如果字符串可以轉換爲DateTime返回boolean
。我們可以使用out newDateTime
來減少代碼和轉換的數量,並且基本保證文本框的值在評估之間不會改變。一個可能會改變的例子是一個多線程應用程序。
此外,我們可以使用IF
的ELSE
來處理意外的轉換問題。這比僅使用DateTime.Parse
好很多,因爲DateTime.Parse
可能會拋出一個異常,這可能是非常昂貴的生成,具體取決於使用此代碼的位置。
你說得對,我已經更新了答案,謝謝! –
你需要提高你的研究技能。 – LarsTech