C# 清除Linqpad中的所有实习字符串?
如何清除linqpad中的所有实习字符串 看看这个例子:C# 清除Linqpad中的所有实习字符串?,c#,.net,linqpad,C#,.net,Linqpad,如何清除linqpad中的所有实习字符串 看看这个例子: //var asd="asd"; string s = new string(new []{'a','s','d'}); Console.WriteLine (string.IsInterned(s)); 它总是返回null,这很好 但是,一旦我取消注释第一行,即使我再次注释它,它也会产生“asd” 看来唯一的解决办法是关闭程序,然后重新启动 p、 美国:在visual studio中,它总是返回所需的结果(控制台模式)。LINQPa
//var asd="asd";
string s = new string(new []{'a','s','d'});
Console.WriteLine (string.IsInterned(s));
它总是返回null
,这很好
但是,一旦我取消注释第一行,即使我再次注释它,它也会产生“asd”
看来唯一的解决办法是关闭程序,然后重新启动
p、 美国:在visual studio中,它总是返回所需的结果(控制台模式)。LINQPad在运行之间维护AppDomain,因此所有静态内容都将保留在内存中。您可以通过转到编辑>首选项>高级>始终使用新的应用程序域来更改此行为
虽然上面的说法是正确的,但似乎字符串内部处理是在流程级别执行的(请参阅)。因此,除了重新启动之外,没有办法重置它。这个So线程可能会为您在清除它时遇到问题提供一些原因:为了在控制台应用程序中获得所需的结果,您不需要取消注释该行并重新生成吗?这与卸载和重新加载LINQPad相同。否?“取消所有线程并重置”(Shift+Ctrl+F5)是清除AppDomain的另一种方法。但正如Eli所说,实习是在过程层面进行的,所以在这种情况下不会产生任何影响。