提问人:Parrotmaster 提问时间:10/25/2023 更新时间:10/25/2023 访问量:84
清空一长串值得吗?
Is it worth the effort to empty a long string?
问:
我使用 StringBuilder 在 .NET 中编写 SQL 查询。 执行查询后,手动将字符串的内容设置为“”有意义吗?
我猜编译器已经完成了这项工作(可能只有在启用优化选项的情况下)。
答:
2赞
Mike Nakis
10/25/2023
#1
在 C# 中,不能将字符串的内容设置为“”。不能将字符串的内容设置为任何内容。C# 中的字符串是不可变的。
也许你的意思是“清除 StringBuilder 有意义吗?
从理论上讲,如果出现以下情况,清除 StringBuilder 可能会有好处:
- 你把它放在身边并重复使用它。
StringBuilder
- 你正在用巨大的字符串填充它。我的意思是,真的很大。就像兆字节长的字符串一样。
在上述情况下,可能值得在每次使用后清除,而不是在每次重用之前立即清除。StringBuilder
但是你可能不会保留它,即使你保留了,你的SQL查询也可能没有兆字节长,所以不要再担心这个了。StringBuilder
不,你的猜测是错误的,编译器不会对此做任何事情,无论有没有优化。这些都是运行时的事务,而不是编译器的事务。
评论
0赞
Rand Random
10/25/2023
恕我直言,您的主张“不能将其设置为任何内容”是一个错误的说法,这似乎暗示这是无效的foo = "Hello World";
0赞
Mike Nakis
10/25/2023
@RandRandom你是对的。我将通过重用 OP 的确切术语来解决此问题。
1赞
Mike Nakis
10/25/2023
@RandRandom在那里,我修好了它。
评论
StringBuilder