
<?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> &#x45;&#x66;&#x66;&#x65;&#x63;&#x74;&#x69;&#x76;&#x65;&#x20;&#x43;&#x23;&#x20;&#x539F;&#x5219;&#x32;&#x31;&#xFF1A;&#x7528;&#x59D4;&#x6258;&#x6765;&#x8868;&#x793A;&#x56DE;&#x8C03;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x30;&#x39;&#x2D;&#x30;&#x38;&#x2D;&#x30;&#x37;&#x20;&#x31;&#x31;&#x3A;&#x33;&#x39;&#x20;&#x41;&#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> &#x6211;&#xFF1A;&#x201C;&#x513F;&#x5B50;&#xFF0C;&#x5230;&#x9662;&#x5B50;&#x91CC;&#x9664;&#x8349;&#x53BB;&#xFF0C;&#x6211;&#x8981;&#x770B;&#x4F1A;&#x4E66;&#x3002;&#x201D;<br/>&#x65AF;&#x79D1;&#x7279;&#xFF1A;&#x201C;&#x7238;&#xFF0C;&#x6211;&#x5DF2;&#x7ECF;&#x6253;&#x626B;&#x8FC7;&#x9662;&#x5B50;&#x4E86;&#x3002;&#x201D;<br/>&#x65AF;&#x79D1;&#x7279;&#xFF1A;&#x201C;&#x7238;&#xFF0C;&#x6211;&#x5DF2;&#x7ECF;&#x628A;&#x8349;&#x653E;&#x5728;&#x9664;&#x8349;&#x673A;&#x4E0A;&#x4E86;&#x3002;&#x201D;<br/>&#x65AF;&#x79D1;&#x7279;&#xFF1A;&#x201C;&#x7238;&#xFF0C;&#x9664;&#x8349;&#x673A;&#x4E0D;&#x80FD;&#x542F;&#x52A8;&#x4E86;&#x3002;&#x201D;<br/>&#x6211;&#xFF1A;&#x201C;&#x8BA9;&#x6211;&#x6765;&#x542F;&#x52A8;&#x5B83;&#x3002;&#x201D;<br/>&#x65AF;&#x79D1;&#x7279;&#xFF1A;&#x201C;&#x7238;&#xFF0C;&#x6211;&#x505A;&#x597D;&#x4E86;&#x3002;&#x201D;<br/>&#x8FD9;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x4EA4;&#x4E92;&#x5C55;&#x793A;&#x4E86;&#x56DE;&#x8C03;&#x3002;&#x6211;&#x7ED9;&#x4E86;&#x6211;&#x513F;&#x5B50;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1;&#xFF0C;&#x5E76;&#x4E14;&#x4ED6;&#x53EF;&#x4EE5;&#x62A5;&#x544A;&#x72B6;&#x6001;&#x6765;(&#x91CD;&#x590D;&#x7684;)&#x6253;&#x65AD;&#x6211;&#x3002;&#x800C;&#x5F53;&#x6211;&#x5728;&#x7B49;&#x5F85;&#x4ED6;&#x5B8C;&#x6210;&#x4EFB;&#x52A1;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x90E8;&#x4EFD;&#x65F6;&#xFF0C;&#x6211;&#x4E0D;&#x7528;&#x963B;&#x585E;&#x6211;&#x81EA;&#x5DF1;&#x7684;&#x8FDB;&#x7A0B;&#x3002;&#x4ED6;&#x53EF;&#x4EE5;&#x5728;&#x6709;&#x91CD;&#x8981;(&#x6216;&#x8005;&#x4E8B;&#x4EF6;)&#x72B6;&#x6001;&#x62A5;&#x544A;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x5B9A;&#x65F6;&#x7684;&#x6253;&#x65AD;&#x6211;&#xFF0C;&#x6216;&#x8005;&#x5411;&#x6211;&#x8BE2;&#x6C42;&#x5E2E;&#x52A9;&#x3002;&#x56DE;&#x8C03;&#x5C31;&#x662F;&#x7528;&#x4E8E;&#x5F02;&#x6B65;&#x7684;&#x63D0;&#x4F9B;&#x670D;&#x52A1;&#x5668;&#x4E0E;&#x5BA2;&#x6237;&#x4E4B;&#x95F4;&#x7684;&#x4FE1;&#x606F;&#x53CD;&#x9988;&#x3002;&#x5B83;&#x4EEC;&#x53EF;&#x80FD;&#x5728;&#x591A;&#x7EBF;&#x7A0B;&#x4E2D;&#xFF0C;&#x6216;&#x8005;&#x53EF;&#x80FD;&#x662F;&#x7B80;&#x5355;&#x7684;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x540C;&#x6B65;&#x66F4;&#x65B0;&#x70B9;&#x3002;&#x5728;C#&#x91CC;&#x662F;&#x7528;&#x59D4;&#x6258;&#x6765;&#x8868;&#x793A;&#x56DE;&#x8C03;&#x7684;&#x3002;<br/>&#x59D4;&#x6258;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x7684;&#x56DE;&#x8C03;&#x5B9A;&#x4E49;&#x3002;&#x5C3D;&#x7BA1;&#x59D4;&#x6258;&#x5927;&#x591A;&#x6570;&#x662F;&#x4E3A;&#x4E8B;&#x4EF6;&#x4F7F;&#x7528;&#x7684;&#xFF0C;&#x4F46;&#x8FD9;&#x4E0D;&#x5E94;&#x8BE5;&#x662F;C#&#x8BED;&#x8A00;&#x4E2D;&#x552F;&#x4E00;&#x4F7F;&#x7528;&#x8FD9;&#x4E00;&#x529F;&#x80FD;&#x7684;&#x5730;&#x65B9;&#x3002;&#x4EFB;&#x4F55;&#x65F6;&#x5019;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x5728;&#x4E24;&#x4E2A;&#x7C7B;&#x4E4B;&#x95F4;&#x8FDB;&#x884C;&#x901A;&#x4FE1;&#xFF0C;&#x800C;&#x4F60;&#x53C8;&#x671F;&#x671B;&#x6BD4;&#x4F7F;&#x7528;&#x63A5;&#x53E3;&#x6709;&#x66F4;&#x5C11;&#x7684;&#x5076;&#x5408;&#x6027;&#xFF0C;&#x90A3;&#x4E48;&#x59D4;&#x6258;&#x662F;&#x4F60;&#x6B63;&#x786E;&#x7684;&#x9009;&#x62E9;&#x3002;&#x59D4;&#x6258;&#x53EF;&#x4EE5;&#x8BA9;&#x4F60;&#x5728;&#x8FD0;&#x884C;&#x786E;&#x5B9A;(&#x56DE;&#x8C03;)&#x76EE;&#x6807;&#x5E76;&#x4E14;&#x901A;&#x77E5;&#x7528;&#x6237;&#x3002;&#x59D4;&#x6258;&#x5C31;&#x662F;&#x5305;&#x542B;&#x4E86;&#x67D0;&#x4E9B;&#x65B9;&#x6CD5;&#x7684;&#x5F15;&#x7528;&#x3002;&#x8FD9;&#x4E9B;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x662F;&#x9759;&#x6001;&#x65B9;&#x6CD5;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x662F;&#x5B9E;&#x4F8B;&#x65B9;&#x6CD5;&#x3002;&#x4F7F;&#x7528;&#x59D4;&#x6258;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x786E;&#x5B9A;&#x4E0E;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x5BA2;&#x6237;&#x5BF9;&#x8C61;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#x3002;<br/>&#x591A;&#x64AD;&#x59D4;&#x6258;&#x5305;&#x542B;&#x4E86;&#x6DFB;&#x52A0;&#x5728;&#x8FD9;&#x4E2A;&#x59D4;&#x6258;&#x4E0A;&#x7684;&#x6240;&#x6709;&#x5355;&#x4E2A;&#x51FD;&#x6570;&#x8C03;&#x7528;&#x3002;&#x6709;&#x4E24;&#x70B9;&#x8981;&#x6CE8;&#x610F;&#x7684;&#xFF1A;&#x5B83;&#x4E0D;&#x662F;&#x5F02;&#x5E38;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x8FD4;&#x56DE;&#x503C;&#x603B;&#x662F;&#x59D4;&#x6258;&#x4E0A;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#x8C03;&#x7528;&#x540E;&#x8FD4;&#x56DE;&#x7684;&#x503C;&#x3002;<br/>&#x5728;&#x591A;&#x64AD;&#x59D4;&#x6258;&#x8C03;&#x7528;&#x7684;&#x5185;&#x90E8;&#xFF0C;&#x6BCF;&#x4E00;&#x4E2A;&#x76EE;&#x6807;&#x90FD;&#x4F1A;&#x6210;&#x529F;&#x7684;&#x8C03;&#x7528;&#x3002;&#x59D4;&#x6258;&#x4E0D;&#x4F1A;&#x6355;&#x83B7;&#x4EFB;&#x4F55;&#x7684;&#x5F02;&#x5E38;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5728;&#x59D4;&#x6258;&#x94FE;&#x4E2D;&#x629B;&#x51FA;&#x7684;&#x4EFB;&#x4F55;&#x5F02;&#x5E38;&#x90FD;&#x4F1A;&#x7EC8;&#x6B62;&#x59D4;&#x6258;&#x94FE;&#x7684;&#x7EE7;&#x7EED;&#x8C03;&#x7528;&#x3002;<br/>&#x5728;&#x8FD4;&#x56DE;&#x503C;&#x4E0A;&#x4E5F;&#x5B58;&#x5728;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x95EE;&#x9898;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5B9A;&#x4E49;&#x59D4;&#x6258;&#x6709;&#x8FD4;&#x56DE;&#x503C;&#x6216;&#x8005;&#x662F;void&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x4F1A;&#x5199;&#x4E00;&#x4E2A;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#x6765;&#x68C0;&#x6D4B;&#x7528;&#x6237;&#x7684;&#x5F02;&#x5E38;&#x4E2D;&#x65AD;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public delegate bool ContinueProcessing();<br/>public void LengthyOperation( ContinueProcessing pred )<br/>{<br/>&nbsp;&nbsp;foreach( ComplicatedClass cl in _container )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;cl.DoLengthyOperation();<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Check for user abort:<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (false == pred())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;}<br/>}<br/>&#x5728;&#x5355;&#x59D4;&#x6258;&#x4E0A;&#x8FD9;&#x662F;&#x5DE5;&#x4F5C;&#x7684;&#xFF0C;&#x4F46;&#x5728;&#x591A;&#x64AD;&#x59D4;&#x6258;&#x4E0A;&#x5374;&#x662F;&#x6709;&#x95EE;&#x9898;&#x7684;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;ContinueProcessing cp = new ContinueProcessing (<br/>&nbsp;&nbsp;CheckWithUser );<br/>cp += new ContinueProcessing( CheckWithSystem );<br/>c.LengthyOperation( cp );<br/>&#x4ECE;&#x59D4;&#x6258;&#x7684;&#x8C03;&#x7528;&#x4E0A;&#x8FD4;&#x56DE;&#x7684;&#x503C;&#xFF0C;&#x5176;&#x5B9E;&#x662F;&#x5B83;&#x7684;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#x7684;&#x8C03;&#x7528;&#x4E0A;&#x8FD4;&#x56DE;&#x7684;&#x503C;&#x3002;&#x5176;&#x5B83;&#x6240;&#x6709;&#x7684;&#x7684;&#x8FD4;&#x56DE;&#x503C;&#x90FD;&#x88AB;&#x5FFD;&#x7565;&#x3002;&#x5373;&#xFF0C;&#x4ECE;CheckWithUser()&#x8FD4;&#x56DE;&#x7684;&#x65AD;&#x8A00;&#x88AB;&#x5FFD;&#x7565;&#x3002;<br/>&#x4F60;&#x53EF;&#x4EE5;&#x81EA;&#x5DF1;&#x624B;&#x52A8;&#x7684;&#x8BBE;&#x7F6E;&#x4E24;&#x4E2A;&#x59D4;&#x6258;&#x6765;&#x8C03;&#x7528;&#x4E24;&#x4E2A;&#x51FD;&#x6570;&#x3002;&#x4F60;&#x6240;&#x521B;&#x5EFA;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x59D4;&#x6258;&#x90FD;&#x5305;&#x542B;&#x6709;&#x4E00;&#x4E2A;&#x59D4;&#x6258;&#x94FE;&#x3002;&#x76F4;&#x63A5;&#x68C0;&#x6D4B;&#x8FD9;&#x4E2A;&#x59D4;&#x6258;&#x94FE;&#xFF0C;&#x5E76;&#x81EA;&#x5DF1;&#x8C03;&#x7528;&#x6BCF;&#x4E00;&#x4E2A;&#x59D4;&#x6258;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public delegate bool ContinueProcessing();<br/>public void LengthyOperation( ContinueProcessing pred )<br/>{<br/>&nbsp;&nbsp;bool bContinue = true;<br/>&nbsp;&nbsp;foreach( ComplicatedClass cl in _container )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;cl.DoLengthyOperation();<br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach( ContinueProcessing pr in<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pred.GetInvocationList( ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bContinue &amp;= pr();<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (false == bContinue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;}<br/>}<br/>&#x8FD9;&#x65F6;&#xFF0C;&#x6211;&#x5DF2;&#x7ECF;&#x5B9A;&#x4E49;&#x597D;&#x4E86;&#x7A0B;&#x5E8F;&#x7684;&#x8BED;&#x4E49;&#xFF0C;&#x56E0;&#x6B64;&#x59D4;&#x6258;&#x94FE;&#x4E0A;&#x7684;&#x6BCF;&#x4E2A;&#x59D4;&#x6258;&#x5FC5;&#x987B;&#x8FD4;&#x56DE;&#x771F;&#x4EE5;&#x540E;&#xFF0C;&#x624D;&#x80FD;&#x7EE7;&#x7EED;&#x8C03;&#x7528;&#x3002;<br/>&#x59D4;&#x6258;&#x4E3A;&#x8FD0;&#x884C;&#x65F6;&#x56DE;&#x8C03;&#x63D0;&#x4F9B;&#x4E86;&#x6700;&#x597D;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x7528;&#x6237;&#x7B80;&#x5355;&#x7684;&#x5B9E;&#x73B0;&#x7528;&#x6237;&#x5BF9;&#x7C7B;&#x7684;&#x9700;&#x6C42;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x786E;&#x5B9A;&#x59D4;&#x6258;&#x7684;&#x76EE;&#x6807;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x652F;&#x6301;&#x591A;&#x4E2A;&#x7528;&#x6237;&#x76EE;&#x6807;&#xFF0C;&#x8FD9;&#x6837;&#xFF0C;&#x7528;&#x6237;&#x7684;&#x56DE;&#x8C03;&#x5C31;&#x53EF;&#x4EE5;&#x7528;.Net&#x91CC;&#x7684;&#x59D4;&#x6258;&#x5B9E;&#x73B0;&#x4E86;&#x3002;<br/>========================================================&nbsp;&nbsp;&nbsp;&nbsp;<br/>Item 21: Express Callbacks with Delegates<br/>Me: &#34;Son, go mow the yard. I&#39;m going to read for a while.&#34;<br/>Scott: &#34;Dad, I cleaned up the yard.&#34;<br/>Scott: &#34;Dad, I put gas in the mower.&#34;<br/>Scott: &#34;Dad, the mower won&#39;t start.&#34;<br/>Me: &#34;I&#39;ll start it.&#34;<br/>Scott: &#34;Dad, I&#39;m done.&#34;<br/>This little exchange illustrates callbacks. I gave my son a task, and he (repeatedly) interrupted me with the status. I did not block my own progress while I waited for him to finish each part of the task. He was able to interrupt me periodically when he had an important (or even unimportant) status to report o&#114; needed my assistance. Callbacks are used to provide feedback from a server to a client asynchronously. They might involve multithreading, o&#114; they might simply provide an entry point for synchronous up&#100;ates. Callbacks are expressed using delegates in the C# language.<br/>Delegates provide type-safe callback definitions. Although the most common use of delegates is events, that should not be theonly time you use this language feature. Any time you need to configure the communication between classes and you desire less coupling than you get from interfaces, a delegate is the right choice. Delegates let you configure the target at runtime and notify multiple clients. A delegate is an object that contains a reference to a method. That method can be either a static method o&#114; an instance method. Using the delegate, you can communicate with one o&#114; many client objects, configured at runtime.<br/>Multicast delegates wrapall the functions that have been added to the delegate in a single function call. Two caveats apply to this construct: It is not safe in the face of exceptions, and the return value will be the return value of the last function invocation.<br/>Inside a multicast delegate invocation, each target is called in succession. The delegate does not catch any exceptions. Therefore, any exception that the target throws ends the delegate invocation chain.<br/>A similar problem exists with return values. You can define delegates that have return types other than void. You could write a callback to check for user aborts:<br/>public delegate bool ContinueProcessing();<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public void LengthyOperation( ContinueProcessing pred )<br/>{<br/>&nbsp;&nbsp;foreach( ComplicatedClass cl in _container )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;cl.DoLengthyOperation();<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Check for user abort:<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (false == pred())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;}<br/>}<br/>It works as a single delegate, but using it as a multicast is problematic:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;ContinueProcessing cp = new ContinueProcessing (<br/>&nbsp;&nbsp;CheckWithUser );<br/>cp += new ContinueProcessing( CheckWithSystem );<br/>c.LengthyOperation( cp );<br/>The value returned from invoking the delegate is the return value from the last function in the multicast chain. All other return values are ignored. The return from the CheckWithUser() predicate is ignored.<br/>You address both issues by invoking each delegate target yourself. Each delegate you cr&#101;ate contains a list of delegates. To examine the chain yourself and call each one, iterate the invocation list yourself:<br/>public delegate bool ContinueProcessing();<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public void LengthyOperation( ContinueProcessing pred )<br/>{<br/>&nbsp;&nbsp;bool bContinue = true;<br/>&nbsp;&nbsp;foreach( ComplicatedClass cl in _container )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;cl.DoLengthyOperation();<br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach( ContinueProcessing pr in<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pred.GetInvocationList( ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bContinue &amp;= pr();<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (false == bContinue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;}<br/>}<br/>In this case, I&#39;ve defined the semantics so that each delegate must be true for the iteration to continue.<br/>Delegates provide the best way to utilize callbacks at runtime, with simpler requirements on client classes. You can configure delegate targets at runtime. You can support multiple client targets. Client callbacks should be implemented using delegates in .NET.</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.661&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x45;&#x66;&#x66;&#x65;&#x63;&#x74;&#x69;&#x76;&#x65;&#x20;&#x43;&#x23;&#x20;&#x539F;&#x5219;&#x32;&#x31;&#xFF1A;&#x7528;&#x59D4;&#x6258;&#x6765;&#x8868;&#x793A;&#x56DE;&#x8C03;</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.661&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.661&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
