9

イベントStringBuilderを実装するには継承する必要があるので、これは不思議です。TextChangeda および暗黙的/明示的な変換を含むラッパーをいつでも作成できますがprivate StringBuilder、これは適切な解決策とは思えません。

幸いなことに、StringBuilder に書き込みを行っているオブジェクトから継承できるので、これは私にとってはそれほど問題ではありませんが、なぜそのクラスが封印されているのかについてはまだ興味があります。

4

2 に答える 2

7

StringBuilder文字列をアセンブルするため、シールされます。たとえば、使用はスコープ内で制限される必要があるため、継承する理由があってはなりません。StringBuilderの代わりになるものではなく、string決してそのように使用しないでください。このクラスの目標は、変更可能な文字列を必要とする操作を、パフォーマンスを犠牲にすることなく簡単に処理できるようにすることでした。StringBuilderそのため、クラスが変更可能な文字列を処理するため、からの継承がユーティリティを提供する方法はなく、セキュリティ上の問題が発生する可能性があります。

参照ソースを見てください。これは単純なクラスではなく、厳密に焦点を絞ったユーティリティです。さらにunsafe、継承を許可すると、セキュリティを損なう可能性のある安全でないコードの変更が許可されます。

于 2013-08-02T20:10:31.987 に答える