
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x49;&#x44;&#x69;&#x73;&#x70;&#x6F;&#x73;&#x61;&#x62;&#x6C;&#x65;&#x63A5;&#x53E3;&#x548C;&#x6790;&#x6784;&#x51FD;&#x6570;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x30;&#x37;&#x2D;&#x31;&#x32;&#x2D;&#x31;&#x36;&#x20;&#x31;&#x31;&#x3A;&#x32;&#x34;&#x20;&#x50;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=5">&#x57;&#x65;&#x62;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x5176;&#x5B9E;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x8001;&#x8BDD;&#x9898;&#x4E86;&#xFF0C;&#x53EA;&#x662F;&#x521A;&#x624D;&#x505A;&#x7A0B;&#x5E8F;&#x7684;&#x65F6;&#x5019;&#x7A81;&#x7136;&#x53D1;&#x73B0;&#x81EA;&#x5DF1;&#x6709;&#x4E9B;&#x6982;&#x5FF5;&#x6709;&#x70B9;&#x6A21;&#x7CCA;&#xFF0C;&#x6240;&#x4EE5;&#x505A;&#x4E86;&#x4E00;&#x4E2A;&#x6D4B;&#x8BD5;&#x5982;&#x4E0B;&#xFF1A; <br/>&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x662F;MSDN&#x4E2D;&#x7684;&#x4F8B;&#x5B50;&#x4FEE;&#x6539;&#x800C;&#x6765;&#x3002;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;using System; <br/>using System.ComponentModel; <br/> <br/>// The following example demonstrates how to cr&#101;ate <br/>// a resource class that implements the IDisposable interface <br/>// and the IDisposable.Dispose method. <br/> <br/>public class DisposeExample <br/>{ <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;public class MyDisposableMember: IDisposable <br/>&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private bool disposed = false; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private string info; <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public MyDisposableMember(string _info) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info = _info; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;\tMyDisposableMember:&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void Dispose() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;\tDispose:&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose(true); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GC.SuppressFinalize(this); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private void Dispose(bool disposing) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!this.disposed) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(disposing) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disposed = true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~MyDisposableMember()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;\t~MyDisposableMember():&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose(false); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/> <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;// A base class that implements IDisposable. <br/>&nbsp;&nbsp;&nbsp;&nbsp;// By implementing IDisposable, you are announcing that&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// instances of this type allocate scarce resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp;public class MyResource: IDisposable <br/>&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Track whether Dispose has been called. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private bool disposed = false; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private string info; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyDisposableMember member; <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// The class constructor. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public MyResource(string _info) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info = _info; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;MyResource:&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;member = new MyDisposableMember(&#34;member-&#34; + _info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Implement IDisposable. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Do not make this method virtual. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// A derived class should not be able to override this method. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void Dispose() <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;Dispose:&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose(true); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// This object will be cleaned up by the Dispose method. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Therefore, you should call GC.SupressFinalize to <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// take this object off the finalization queue&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// and prevent finalization code for this object <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// from executing a second time. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GC.SuppressFinalize(this); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Dispose(bool disposing) executes in two distinct scenarios. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// If disposing equals true, the method has been called directly <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// o&#114; indirectly by a user&#39;s code. Managed and unmanaged resources <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// can be disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// If disposing equals false, the method has been called by the&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// runtime from inside the finalizer and you should not reference&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// other objects. Only unmanaged resources can be disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private void Dispose(bool disposing) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!this.disposed) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// If disposing equals true, dispose all managed&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// and unmanaged resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(disposing) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Dispose managed resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;member.Dispose(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Call the appropriate methods to clean up&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// unmanaged resources here. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// If disposing is false,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// only the following code is executed. <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;member = null; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disposed = true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Use C# destructor syntax for finalization code. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// This destructor will run only if the Dispose method&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// does not get called. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// It gives your base class the opportunity to finalize. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Do not provide destructors in types derived from this class. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~MyResource()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Do not re-cr&#101;ate Dispose clean-up code here. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Calling Dispose(false) is optimal in terms of <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// readability and maintainability. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;~MyResource():&#34; + info); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose(false); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;public static void Main() <br/>&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Ins&#101;rt code here to cr&#101;ate <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// and use the MyResource object.&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyResource mr = new MyResource(&#34;mr&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mr.Dispose(); <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new MyResource(&#34;hang&#34;); <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using(MyResource m = new MyResource(&#34;using&#34;)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(&#34;ready to exit using statement&#34;); <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.GC.SuppressFinalize(mr); <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/> <br/>/* <br/>&#x8FD0;&#x884C;&#x7ED3;&#x679C;&#x5982;&#x4E0B;&#xFF1A; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>MyResource:mr <br/>&nbsp;&nbsp;&nbsp;&nbsp;MyDisposableMember:member-mr <br/>Dispose:mr <br/>&nbsp;&nbsp;&nbsp;&nbsp;Dispose:member-mr <br/>MyResource:hang <br/>&nbsp;&nbsp;&nbsp;&nbsp;MyDisposableMember:member-hang <br/>MyResource:using <br/>&nbsp;&nbsp;&nbsp;&nbsp;MyDisposableMember:member-using <br/>ready to exit using statement <br/>Dispose:using <br/>&nbsp;&nbsp;&nbsp;&nbsp;Dispose:member-using <br/>&nbsp;&nbsp;&nbsp;&nbsp;~MyDisposableMember():member-hang <br/>~MyResource():hang <br/> <br/>*/ <br/>} <br/>&#x4ECE;&#x8FD0;&#x884C;&#x7ED3;&#x679C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5206;&#x6790;&#x51FA;&#x5982;&#x4E0B;&#x7684;&#x7ED3;&#x679C;&#xFF1A; <br/>1.&#x5982;&#x679C;&#x8C03;&#x7528;Dispose&#x8FDB;&#x884C;&#x91CA;&#x653E;&#xFF0C;&#x5219;&#x7CFB;&#x7EDF;&#x4E0D;&#x4F1A;&#x8C03;&#x7528;&#x5176;&#x6790;&#x6784;&#x51FD;&#x6570; <br/>2.&#x5982;&#x679C;&#x662F;&#x7CFB;&#x7EDF;&#x81EA;&#x52A8;&#x91CA;&#x653E;&#x7684;&#xFF0C;&#x5219;&#x4E0D;&#x4F1A;&#x8C03;&#x7528;&#x5176;Dispose&#x51FD;&#x6570;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;.net&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x5176;&#x5B9E;&#x4E0D;&#x8BA4;&#x8BC6; IDisposable&#x63A5;&#x53E3;&#x3002; <br/>3.&#x5728;&#x7C7B;&#x6790;&#x6784;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x4F1A;&#x5148;&#x91CA;&#x653E;&#x5176;&#x4E2D;&#x7684;&#x6210;&#x5458;&#xFF0C;&#x6700;&#x540E;&#x518D;&#x8C03;&#x7528;&#x7C7B;&#x7684;&#x6790;&#x6784;&#x51FD;&#x6570;&#x672C;&#x8EAB;&#x3002; <br/>&#x8FD9;&#x91CC;&#x7B2C;3&#x70B9;&#x9700;&#x8981;&#x8BF4;&#x660E;&#x4E00;&#x4E0B;&#xFF0C;&#x8FD9;&#x662F;&#x548C;C++&#x4E2D;&#x533A;&#x522B;&#x5F88;&#x5927;&#x7684;&#x5730;&#x65B9;&#xFF0C;&#x5728;C++&#x4E2D;&#x6240;&#x6709;&#x7684;&#x91CA;&#x653E;&#x90FD;&#x9700;&#x8981;&#x7C7B;&#x7684;&#x6790;&#x6784;&#x51FD;&#x6570;&#x6765;&#x8FDB;&#x884C;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x5728;C++&#x7684;&#x6790;&#x6784;&#x51FD;&#x6570;&#x4E2D;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x6210;&#x5458;&#x90FD;&#x662F;&#x53EF;&#x7528;&#x800C;&#x4E14;&#x6709;&#x6548;&#x7684;&#x3002;&#x4F46;&#x662F;&#x5728;C#&#x4E2D;&#x5C31;&#x4F1A;&#x6709;&#x533A;&#x522B;&#x4E86;&#xFF0C;&#x56E0;&#x4E3A;C#&#x7684;&#x7C7B;&#x6790;&#x6784;&#x51FD;&#x6570;&#x8C03;&#x7528;&#x4E4B;&#x524D;&#xFF0C;&#x7CFB;&#x7EDF;&#x5C31;&#x4F1A;&#x8FDB;&#x884C;&#x6258;&#x7BA1;&#x6210;&#x5458;&#x5BF9;&#x8C61;&#x7684;&#x6E05;&#x7406;&#x5DE5;&#x4F5C;&#x3002;&#x4ECE;&#x751F;&#x547D;&#x5468;&#x671F;&#x7684;&#x89C2;&#x70B9;&#x6765;&#x770B;&#xFF0C;&#x7C7B;&#x6210;&#x5458;&#x7684;&#x751F;&#x547D;&#x5468;&#x671F;&#x5FC5;&#x987B;&#x5305;&#x542B;&#x5728;&#x7C7B;&#x7684;&#x751F;&#x547D;&#x5468;&#x671F;&#x4E4B;&#x5185;&#xFF0C;C#&#x8FD9;&#x4E48;&#x505A;&#x6CA1;&#x6709;&#x95EE;&#x9898;&#xFF0C;&#x4F46;&#x662F;&#x95EE;&#x9898;&#x65F6;&#x5728;&#x4E8E;&#x7A0B;&#x5E8F;&#x7ECF;&#x5E38;&#x9700;&#x8981;&#x5728;&#x6790;&#x6784;&#x51FD;&#x6570;&#x4E2D;&#x4F7F;&#x7528;&#x7C7B;&#x7684;&#x6210;&#x5458;&#xFF0C;&#x6240;&#x4EE5;&#x5C31;&#x51FA;&#x73B0;&#x4E86;&#x5F02;&#x5E38;&#x60C5;&#x51B5;&#xFF1A;&#x5728;&#x6790;&#x6784;&#x51FD;&#x6570;&#x4E2D;&#x4F7F;&#x7528;&#x7684;&#x7C7B;&#x6210;&#x5458;&#x5DF2;&#x7ECF;&#x88AB;&#x6790;&#x6784;&#x4E86;&#xFF01;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x540C;&#x6837;&#x5728;&#x6790;&#x6784;&#x51FD;&#x6570;&#x8303;&#x56F4;&#x5185;&#xFF0C;C++&#x5305;&#x542B;&#x7684;&#x5BD3;&#x610F;&#x662F;&#x201C;&#x6790;&#x6784;=&#x65E0;&#x6548;&#x201D;&#xFF0C;&#x4F46;&#x662F;&#x5728;C#&#x7684;&#x6790;&#x6784;&#x51FD;&#x6570;&#x8303;&#x56F4;&#x4E2D;&#xFF0C;&#x201C;&#x6790;&#x6784; != &#x65E0;&#x6548;&#x201D;&#x3002; <br/>&#x7531;&#x6B64;&#xFF0C;&#x6211;&#x4EEC;&#x660E;&#x767D;&#x4E86;&#x4E3A;&#x4EC0;&#x4E48;&#x4E00;&#x4E9B;&#x4EE3;&#x7801;&#x68C0;&#x67E5;&#x7684;&#x8F6F;&#x4EF6;&#x4F1A;&#x5EFA;&#x8BAE;&#x6211;&#x4EEC;&#x5B9E;&#x73B0;IDisposable&#x65F6;&#x5019;&#xFF0C;&#x50CF;&#x4F8B;&#x5B50;&#x4E2D;&#x90A3;&#x6837;&#x8981;&#x81EA;&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;Dispose(bool disposing)&#x4E86;&#x3002;</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x49;&#x44;&#x69;&#x73;&#x70;&#x6F;&#x73;&#x61;&#x62;&#x6C;&#x65;&#x63A5;&#x53E3;&#x548C;&#x6790;&#x6784;&#x51FD;&#x6570;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
