C# · 12月 26, 2021

c# – 使用“using”语句进行处理

这有道理吗

有一个简单的课

class Test { public test() { // Do whatever } }

然后实例化它

using(new test()){ // Nothing in here}

使用声明只是为了确保测试被处理.
如果我打电话,什么时候会被处理

new test()解决方法 测试不是IDisposable,所以甚至不会编译.但是,如果是一次性使用,是使用会做,而新的本身不会.这是一个不寻常的用法,但我看到类似的.很少.

根据您的评论(主要问题),我怀疑垃圾收集和处理是混乱的.没有办法强制收集某些东西,而不是GC(你不应该做).除非你有一个非常好的理由要收集,只要让它成为 – 有可能是“第0代”,无论如何也将被廉价收集.

此外,“做任何事情”建议在构造函数中执行某些操作,但不关心创建的对象;一个静态方法是最好的:

public class Test { /* Could be static */ public static void DoSomething() { … }}…Test.DoSomething();