Delphi XE – 我应该使用String还是AnsiString?
我终于升级到了Delphi XE.我有一个单位库,我使用字符串来存储简单的ANSI字符(A和U之间的字符).我有101%的确定我永远不会在这些地方使用UNICODE字符.
我想将所有其他库转换为Unicode,但是对于这个特定的库,我认为更好地遵守ANSI.优点是内存需求,因为在某些情况下,我加载非常大的TXT文件(仅包含Ansi字符).缺点可能是当我使这些库与普通(unicode)库进行交互时,我必须做很多很多的类型转换. 有一些一般的指导方针,显示何时可以转换为Unicode,何时坚持使用Ansi? 解决方法
一般准则的问题是,这样的事情可以非常具体地针对一个人的情况.你的例子就是其中之一.
然而,对于Googling的人来到这里,一些一般的指导方针是: >是的,转换为Unicode.不要尝试使用AnsiStrings完全保留旧的应用程序.原因是整个VCL是Unicode,你不应该尝试混合这两个,因为你将转换每次你分配一个Unicode字符串到一个ANSI字符串,这是一个有损的转换.试图保持旧的方式,因为它的工作较少(或类似的原因)会导致你的痛苦;只是拥抱新的字符串类型,转换,并与它一起去. 评论者,请添加更多的建议…我主要使用C Builder,而不是Delphi,并且可能有很多具体的东西对于Delphi我不知道. 现在你的具体问题:你应该转换这个图书馆吗? 如果: > A和U之间的价值真的只有这个范围,而且 然后不转换为Unicode,而是将字符串切换到AnsiStrings,这是有道理的. 请注意: >每次从ANSI转换为Unicode时都有一个开销 我的建议就个人而言,我从您所提供的信息中做到这一点的唯一原因是内存使用,可能的性能取决于您在使用这么大量的A..Us中所做的工作.如果真的很重要,那就是驱动程序和约束,你应该转换为ANSI. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |