2 элемента управления Rich Edit, одинаковый текст

Я поместил 2 элемента управления Rich Edit, которые должны отображать один и тот же текст. Итак, когда я редактирую текст в одном из них, другой должен отражать изменения. Проблема в том, что я не хочу помещать этот код в событие Text Changed:

control1.rftText = control2.rtfText

потому что он будет создавать новый экземпляр строки каждый раз, когда текст редактируется.

Есть ли способ отправить один и тот же экземпляр строки в оба элемента управления или есть какие-либо другие решения проблемы?


person doorstuck    schedule 29.04.2011    source источник
comment
Два слова: преждевременная оптимизация. Напишите разумный код. Не исправляйте это, пока не заметите проблемы с производительностью.   -  person Cody Gray    schedule 29.04.2011
comment
Копирование строк не обязательно плохо, а копирование строк в целом выполняется очень быстро. Это плохой подход в определенных сценариях, но я думаю, что для этого он будет лучшим. Используйте простое решение и исправьте его, если оно снижает производительность.   -  person Can Gencer    schedule 30.04.2011


Ответы (1)


control1.rftText - неизменяемая строка, поэтому, если вы хотите ее изменить, вам придется создать новую строку.

Использование этого control1.rftText = "my new string" просто создаст новую строку и назначит ее полю rftText, как вы сказали. Если вы действительно серьезно относитесь к оптимизации такого рода присвоений значений, вы можете создать свою собственную реализацию производного класса расширенного редактирования, где он будет использовать какую-то логику StringBuilder, или вы можете внутренне представить текст как массив char [] и изменить это, но они могут оказаться реальной проблемой, поэтому принимайте мудрые решения.

person Teoman Soygul    schedule 29.04.2011
comment
Как именно это отвечает на вопрос? Вам не хватает логики или чего-то в этом роде. - person Cody Gray; 29.04.2011