gpt4 book ai didi

c# - 如何防止字符串被拦截

转载 作者:IT王子 更新时间:2023-10-28 23:34:11 26 4
gpt4 key购买 nike

我的理解(可能是错误的)是,在 c# 中,当您创建一个字符串时,它会被实习到“实习池”中。这保留了对字符串的引用,以便多个相同的字符串可以共享操作内存。

但是,我正在处理很多很可能是唯一的字符串,一旦我完成了每个字符串,我需要将它们从操作内存中完全删除,我不确定如何删除缓存的引用,所以该垃圾收集器可以从内存中删除所有字符串数据。我怎样才能防止字符串被困在这个缓存中,或者我怎样才能清除它/或从中删除一个字符串,以便它肯定会从操作内存中删除?

最佳答案

如果出于安全原因需要从内存中删除字符串,请使用 SecureString .

否则,如果任何地方都没有对字符串的引用,GC 无论如何都会清理它(它将不再被实习)所以你不必担心实习。

当然,首先只有字符串字面量会被实习(或者如果您调用 String.Intern(),如 Petr 和其他人在上面提到的)。

关于c# - 如何防止字符串被拦截,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com