我有一個網頁,其中有一些默認值的文本框。清除ASP.NET中的文本框
我必須清除文本框中的值。我有2個選項
1. textbox.text="";
2. textbox.text.remove(0,length);
在這裏,我想知道我應該使用哪一個。它是否對頁面性能產生任何影響,因爲頁面中放置了許多文本框。
感謝
我有一個網頁,其中有一些默認值的文本框。清除ASP.NET中的文本框
我必須清除文本框中的值。我有2個選項
1. textbox.text="";
2. textbox.text.remove(0,length);
在這裏,我想知道我應該使用哪一個。它是否對頁面性能產生任何影響,因爲頁面中放置了許多文本框。
感謝
要做到這一點,最好的辦法..
textbox.text = string.Empty;
還記得string類型是不可改變 !
這沒有什麼區別 - 做什麼是最可讀的爲您和您的同事們。
很多人喜歡用string.Empty
。
方法調用與分配具有相同的性能嗎? – 2009-12-24 10:34:22
@約翰請 - 我們都知道這是無足輕重的。 – 2009-12-24 10:35:05
@Rex:也許現在對我來說太早了,但你是什麼意思? – 2009-12-24 10:36:27
大概,你的意思是當用戶點擊int框時用javascript清除值?如果是這樣,這對性能沒有任何影響。
我使用jQuery在大多數的網頁,所以我只是掛鉤這個函數來清除默認值的onClick,使用文本框的客戶端Id:
$('#ctl00_TextBox').click(function() { $('#ctl00_TextBox').val('');
如果你的意思是清楚它在代碼隱藏使用:
yourTextBox.Text = String.Empty;
對性能的影響將是最小的,甚至有數百/數以千計的電話,不過
textbox.text = "";
在理論上應該非常稍快,因爲你只是分配一個新的值,而不是處理字符串(如卸下襬臂一樣)
要做到這一點是做的最好辦法
textbox.text = String.Empty;
更新:如果你計數時鐘週期,會的String.Empty實際執行也更快,因爲它沒有創建新的對象,而「」將創建一個新的String對象。
但是,您真的不應該太在意這一點,沒有太多方法將字符串設置爲空,這會導致性能問題!您應該使用哪個是最可讀的...
爲什麼string.Empty比「」更好? 「」是interned,與string.Emtpy相同。 Object.ReferenceEquals(string.Empty,「」)將返回true。 – helium 2009-12-24 10:48:44
你答案的第一位是正確的,但我不太確定其餘部分。也許只是堅持你確定的東西? – 2009-12-24 10:51:48
是的,它可能是實習生,但布拉德亞當斯暗示這不一定是這種情況... http://blogs.msdn.com/brada/archive/2003/04/22/49997.aspx所以String.Empty更安全如果我們真的經過這些微不足道的優化。也許編譯器/可以/應該優化這個?我還沒有看IL檢查... – 2009-12-24 13:22:27
TextBox.Text = String.Empty;
是很多更具有可讀性。它清楚地說明你要做什麼:「將此文本框的文本屬性設置爲空字符串」。我建議你去做這項工作,因爲它既快又明瞭。
textbox.text="";
或
foreach (var item in Page.Controls)
{
if (item is TextBox)
{
((TextBox)item).Text = "";
}
}
非常感謝你, 它使的是一個不可改變 – 2009-12-24 10:49:02
不變性你的情況不影響多大任何影響。但是不變性影響很大。賦值時的不可變對象通過重新創建而不復制。 – 2009-12-24 10:59:05
+1爲不可變。 – 2009-12-24 14:24:45