2011-04-29 96 views
1

我已經把2個豐富的編輯控件,它應該顯示相同的文本。所以,當我編輯其中一個文本時,另一個應該反映這些變化。 問題是 - 我不想把這個代碼文本已改變事件:2豐富的編輯控件,相同的文本

control1.rftText = control2.rtfText 

,因爲它將每個編輯文本時創建的字符串的新實例。

有什麼辦法字符串的同一實例發送到這兩個控件還是有該問題的任何其他解決辦法?

+4

兩個詞:過早的優化。編寫有意義的代碼。不要「修復」它,直到您注意到性能問題。 – 2011-04-29 13:07:54

+0

複製串不一定是壞事,並複製字符串一般非常快。在某些情況下這是一個糟糕的做法,但我認爲這是最好的。使用簡單的解決方案,並修復它,如果它成爲一個性能豬。 – 2011-04-30 07:49:08

回答

1

control1.rftText是不可變的字符串,所以,如果你想修改它,你必須創建一個新的字符串。

使用此control1.rftText = "my new string"將簡單地創建一個新的字符串,並將其指定到rftText領域如你所說。如果您真的很想優化這類值賦值,您可以創建自己的派生富編輯類的實現,它將使用邏輯的某種StringBuilder,或者您可以在內部將文本表示爲char []數組,並且修改它,但它們可能會成爲一個真正的挑戰,所以明智地做出決定。

+1

這究竟如何回答這個問題?你錯過了一個邏輯或什麼東西。 – 2011-04-29 13:08:15

+0

好的,用新建議改進了答案。 – 2011-04-29 13:15:30