在C#或方法中使用语句会更好吗?这是否适用于外部(COM)对象?对象完成时,using指令或dispose指令哪个更好?使用(FileStreamfileStream=newFileStream(“logs/myapp.log”,FileMode.Open,FileAccess.Read,FileShare.ReadWrite)){使用(StreamReaderstreamReader=newStreamReader(fileStream)){this.textBoxLogs.Text=streamReader。读到结束();另一方面,当我处理System.Net.Mail时,我被告知我需要Dispose()对象来释放任何杂散锁。是否有一致的指导?您如何判断在给定对象的给定情况下哪些更合适?除了在Dispose()的另一个实现中(例如在您创建的实现IDisposable的实现中),当我可以将对象包装在using块中时,我没有理由手动调用Dispose()。using块将对象的创建和处理放在try/catch/finally块中,以便正确处理对象。编译器比我靠谱。或者你。=)MSDN记录了using语句并调用了你可以获得C#LanguageSpecification的地方,你可以在其中查看第8.13节“Using语句”(至少在v4.0参考中是8.13),它给出了using语句的完全解释以及如何使用它。第五段给出如下:使用声明分为三个部分:获取、使用和处置。资源的使用隐式包含在包含finally子句的try语句中。finally子句处理资源。如果获取的是空资源,则不会调用Dispose,也不会抛出异常。using语句(不是指令)涉及在finally块中对Dispose()的隐式调用。所以这里并不矛盾。你能链接到那个讨论吗?using(x){...}的官方定义是try...finallyif(x!=null)x.Dispose();}什么是更好的?从符号的角度来看,using(){}块。从技术上讲,它们是相同的。这是同一件事。用法很简单,如果您创建对象并仅在一种方法中使用它,请使用using。如果您需要在方法调用之外保持活动状态,则必须使用Dispose()。COM对象的运行时可调用包装器没有Dispose()方法。当使用调用退出时处理。使用更好,因为它确保呼叫处理。当到达块的末尾时,使用块会自动调用Dispose()。使用(foo){foo.DoStuff();}这只是语法糖:try{foo.DoStuff();}finally{if(foo!=null)foo.Dispose();所以我不确定争论从何而来。using块确实调用了dispose。大多数人都喜欢尽可能使用块,因为它们更干净、更清晰。只要对象的生命周期在代码块内,如果你的对象需要长期使用,比如异步调用后dispose,就需要手动调用Dispose,使用using。using块比以任何可能和不可能的方式记住对Dispose的调用要好,执行可以留下一段代码。处处使用“using声明”有一个很重要的原因。如果using语句包装的代码抛出异常,则可以确定将使用“using对象”。以上就是C#学习教程:C#中语句好还是方法好?这是否适用于外部(COM)对象?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
