
<?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;&#x33;&#xFF1A;&#x9009;&#x62E9;&#x69;&#x73;&#x6216;&#x8005;&#x61;&#x73;&#x64CD;&#x4F5C;&#x7B26;&#x800C;&#x4E0D;&#x662F;&#x505A;&#x5F3A;&#x5236;&#x7C7B;&#x578B;&#x8F6C;&#x6362;</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;&#x34;&#x2D;&#x32;&#x38;&#x20;&#x30;&#x39;&#x3A;&#x33;&#x36;&#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> C#&#x662F;&#x4E00;&#x4E2A;&#x5F3A;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x8BED;&#x8A00;&#x3002;&#x597D;&#x7684;&#x7F16;&#x7A0B;&#x5B9E;&#x8DF5;&#x610F;&#x5473;&#x7740;&#x5F53;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4ECE;&#x4E00;&#x79CD;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#x4E3A;&#x53E6;&#x79CD;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x5C3D;&#x6211;&#x4EEC;&#x7684;&#x6240;&#x80FD;&#x6765;&#x907F;&#x514D;&#x5B83;&#x3002;&#x4F46;&#x5728;&#x67D0;&#x4E9B;&#x65F6;&#x5019;&#xFF0C;&#x8FD0;&#x884C;&#x65F6;&#x7C7B;&#x578B;&#x68C0;&#x6D4B;&#x662F;&#x4E0D;&#x53EF;&#x907F;&#x514D;&#x7684;&#x3002;&#x5728;C#&#x91CC;&#xFF0C;&#x5927;&#x591A;&#x6570;&#x65F6;&#x5019;&#x4F60;&#x8981;&#x4E3A;&#x8C03;&#x7528;&#x51FD;&#x6570;&#x7684;&#x53C2;&#x6570;&#x4F7F;&#x7528;System.Object&#x7C7B;&#x578B;&#xFF0C;&#x56E0;&#x4E3A;Framwork&#x5DF2;&#x7ECF;&#x4E3A;&#x6211;&#x4EEC;&#x5B9A;&#x4E49;&#x4E86;&#x51FD;&#x6570;&#x7684;&#x539F;&#x578B;&#x3002;&#x4F60;&#x5F88;&#x53EF;&#x80FD;&#x8981;&#x8BD5;&#x56FE;&#x628A;&#x90A3;&#x4E9B;&#x7C7B;&#x578B;&#x8FDB;&#x884C;&#x5411;&#x4E0B;&#x8F6C;&#x5316;&#x4E3A;&#x5176;&#x5B83;&#x7C7B;&#x578B;&#x7684;&#x63A5;&#x53E3;&#x6216;&#x8005;&#x7C7B;&#x3002;&#x4F60;&#x6709;&#x4E24;&#x4E2A;&#x9009;&#x62E9;&#xFF1A;&#x7528;as&#x8FD0;&#x7B97;&#x7B26;&#xFF0C;&#x6216;&#x8005;&#xFF0C;&#x91C7;&#x7528;&#x65E7;&#x5F0F;&#x7684;C&#x98CE;&#x683C;&#xFF0C;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x3002;(&#x4E0D;&#x7BA1;&#x662F;&#x54EA;&#x4E00;&#x79CD;&#xFF0C;)&#x4F60;&#x8FD8;&#x5FC5;&#x987B;&#x5BF9;&#x53D8;&#x91CF;&#x8FDB;&#x884C;&#x4FDD;&#x62A4;&#xFF1A;&#x4F60;&#x53EF;&#x4EE5;&#x8BD5;&#x7740;&#x7528;is&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#xFF0C;&#x7136;&#x800C;&#x518D;&#x7528;as&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x6216;&#x8005;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x3002;<br/>&#x65E0;&#x8BBA;&#x4F55;&#x65F6;&#xFF0C;&#x6B63;&#x786E;&#x7684;&#x9009;&#x62E9;&#x662F;&#x7528;as&#x8FD0;&#x7B97;&#x7B26;&#x8FDB;&#x884C;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x3002;&#x56E0;&#x4E3A;&#x6BD4;&#x8D77;&#x76F2;&#x76EE;&#x7684;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x5B83;&#x66F4;&#x5B89;&#x5168;&#xFF0C;&#x800C;&#x4E14;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x6548;&#x7387;&#x66F4;&#x9AD8;&#x3002;&#x7528;as&#x548C;is&#x8FD0;&#x7B97;&#x7B26;&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x65F6;&#xFF0C;&#x5E76;&#x4E0D;&#x662F;&#x5BF9;&#x6240;&#x6709;&#x7684;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x578B;&#x90FD;&#x80FD;&#x5B8C;&#x6210;&#x7684;&#x3002;&#x5B83;&#x4EEC;&#x53EA;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x7C7B;&#x578B;&#x548C;&#x76EE;&#x6807;&#x7C7B;&#x578B;&#x5339;&#x914D;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x8F6C;&#x6362;&#x624D;&#x80FD;&#x6210;&#x529F;&#x3002;&#x5B83;&#x4EEC;&#x51B3;&#x4E0D;&#x4F1A;&#x6784;&#x9020;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x5BF9;&#x8C61;&#x6765;&#x6EE1;&#x8DB3;(&#x8F6C;&#x5316;)&#x8981;&#x6C42;&#x3002;<br/>&#x770B;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#x3002;&#x4F60;&#x5199;&#x4E86;&#x4E00;&#x6BB5;&#x4EE3;&#x7801;&#xFF0C;&#x8981;&#x8F6C;&#x6362;&#x4E00;&#x4E2A;&#x4EFB;&#x610F;&#x7C7B;&#x578B;&#x7684;&#x5BF9;&#x8C61;&#x5B9E;&#x4F8B;&#x5230;&#x4E00;&#x4E2A;MyType&#x7C7B;&#x578B;&#x7684;&#x5B9E;&#x4F8B;&#x3002;&#x4F60;&#x662F;&#x8FD9;&#x6837;&#x5199;&#x4EE3;&#x7801;&#x7684;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetObject();<br/>// Version one:<br/>MyType t = o as MyType;<br/>if ( t != null )<br/>{<br/>&nbsp;&nbsp;// work with t, it&#39;s a MyType.<br/>} else<br/>{<br/>&nbsp;&nbsp;// report the failure.<br/>}<br/>&#x6216;&#x8005;&#x4F60;&#x8FD9;&#x6837;&#x5199;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetObject( );<br/>// Version two:<br/>try {<br/>&nbsp;&nbsp;MyType t;<br/>&nbsp;&nbsp;t = ( MyType ) o;<br/>&nbsp;&nbsp;if ( t != null )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// work with T, it&#39;s a MyType.<br/>&nbsp;&nbsp;} else<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Report a null reference failure.<br/>&nbsp;&nbsp;}<br/>} catch<br/>{<br/>&nbsp;&nbsp;// report the conversion failure.<br/>}<br/>&#x4F60;&#x4F1A;&#x540C;&#x610F;&#x7B2C;&#x4E00;&#x79CD;&#x5199;&#x6CD5;&#x66F4;&#x7B80;&#x5355;&#x66F4;&#x5BB9;&#x6613;&#x8BFB;&#x3002;&#x5B83;&#x6CA1;&#x6709;try/catch&#x7ED3;&#x6784;&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x907F;&#x514D;(&#x6027;&#x80FD;)&#x5F00;&#x9500;&#x548C;(&#x591A;&#x5199;)&#x4EE3;&#x7801;&#x3002;&#x6211;&#x4EEC;&#x6CE8;&#x610F;&#x5230;&#xFF0C;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x7684;&#x65B9;&#x6CD5;&#x4E3A;&#x4E86;&#x68C0;&#x6D4B;&#x8F6C;&#x6362;&#x662F;&#x5426;&#x628A;&#x4E00;&#x4E2A;null&#x7684;&#x5BF9;&#x8C61;&#x8FDB;&#x884C;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#xFF0C;&#x800C;&#x4E0D;&#x5F97;&#x4E0D;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x6355;&#x83B7;&#x5F02;&#x5E38;&#x7684;&#x7ED3;&#x6784;&#x3002;null&#x53EF;&#x4EE5;&#x88AB;&#x8F6C;&#x6362;&#x4E3A;&#x4EFB;&#x610F;&#x7684;&#x5F15;&#x7528;&#x7C7B;&#x578B;&#xFF0C;&#x4F46;as&#x64CD;&#x4F5C;&#x7B26;&#x5C31;&#x7B97;&#x662F;&#x8F6C;&#x5316;&#x4E00;&#x4E2A;null&#x7684;&#x5F15;&#x7528;&#x65F6;&#xFF0C;&#x4E5F;&#x4F1A;(&#x5B89;&#x5168;&#x7684;)&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;null&#x3002;&#x6240;&#x4EE5;&#x5F53;&#x4F60;&#x7528;&#x5F3A;&#x5236;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x65F6;&#xFF0C;&#x5C31;&#x5F97;&#x7528;&#x4E00;&#x4E2A;try/catch&#x7ED3;&#x6784;&#x6765;&#x6355;&#x83B7;&#x8F6C;&#x6362;null&#x65F6;&#x7684;&#x5F02;&#x5E38;&#x3002;&#x7528;as&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x7684;&#x65F6;&#x5C31;&#xFF0C;&#x5C31;&#x53EA;&#x7528;&#x7B80;&#x5355;&#x7684;&#x68C0;&#x6D4B;&#x4E00;&#x4E0B;&#x8F6C;&#x5316;&#x540E;&#x7684;&#x5B9E;&#x4F8B;&#x4E0D;&#x4E3A;null&#x5C31;&#x884C;&#x4E86;&#x3002;<br/>(&#x8BD1;&#x6CE8;&#xFF1A;&#x88AB;&#x8F6C;&#x6362;&#x5BF9;&#x8C61;&#x548C;&#x8F6C;&#x6362;&#x540E;&#x7684;&#x7ED3;&#x679C;&#x90FD;&#x6709;&#x53EF;&#x80FD;&#x4E3A;null&#xFF0C;&#x4E0A;&#x9762;&#x5C31;&#x662F;&#x5BF9;&#x8FD9;&#x4E24;&#x79CD;null&#x8FDB;&#x884C;&#x4E86;&#x8BF4;&#x660E;&#xFF0C;&#x6CE8;&#x610F;&#x533A;&#x5206;&#x3002;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x662F;&#x4E0D;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x6709;&#x5F02;&#x5E38;&#x629B;&#x51FA;&#xFF0C;&#x56E0;&#x6B64;&#x8981;&#x7528;try/catch&#x7ED3;&#x6784;&#x6765;&#x4FDD;&#x8BC1;&#x7A0B;&#x5E8F;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#xFF0C;&#x800C;as&#x8F6C;&#x6362;&#x662F;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x4E0D;&#x4F1A;&#x6709;&#x5F02;&#x5E38;&#x629B;&#x51FA;&#xFF0C;&#x4F46;&#x5728;&#x8F6C;&#x6362;&#x5931;&#x8D25;&#x540E;&#xFF0C;&#x5176;&#x7ED3;&#x679C;&#x4E3A;null)<br/>&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x4E0E;as&#x8F6C;&#x6362;&#x6700;&#x5927;&#x7684;&#x533A;&#x522B;&#x8868;&#x73B0;&#x5728;&#x5982;&#x4F55;&#x5BF9;&#x5F85;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7C7B;&#x578B;&#x7684;&#x8F6C;&#x6362;&#x3002;<br/>&#x4E0E;&#x5176;&#x5B83;&#x8FD0;&#x7B97;&#x4E0D;&#x4E00;&#x6837;&#xFF0C;as&#x548C;is&#x8FD0;&#x7B97;&#x7B26;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x8981;&#x68C0;&#x6D4B;&#x8F6C;&#x6362;&#x76EE;&#x6807;&#x7684;&#x7C7B;&#x578B;&#x3002;&#x5982;&#x679C;&#x4E00;&#x4E2A;&#x6307;&#x5B9A;&#x5BF9;&#x8C61;&#x4E0D;&#x662F;&#x8981;&#x6C42;&#x8F6C;&#x6362;&#x7684;&#x7C7B;&#x578B;&#xFF0C;&#x6216;&#x8005;&#x5B83;&#x662F;&#x4ECE;&#x8981;&#x6C42;&#x8F6C;&#x6362;&#x7C7B;&#x578B;&#x90A3;&#x91CC;&#x6D3E;&#x751F;&#x7684;&#xFF0C;&#x8F6C;&#x6362;&#x4F1A;&#x5931;&#x8D25;&#x3002;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#xFF0C;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x53EF;&#x4EE5;&#x7528;&#x8F6C;&#x6362;&#x64CD;&#x4F5C;&#x628A;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x8F6C;&#x6362;&#x6210;&#x8981;&#x6C42;&#x7684;&#x7C7B;&#x578B;&#x3002;&#x8FD9;&#x8FD8;&#x5305;&#x62EC;&#x5BF9;&#x5185;&#x7F6E;&#x6570;&#x636E;(built-in numberic)&#x7C7B;&#x578B;&#x7684;&#x8F6C;&#x6362;&#x3002;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x4E00;&#x4E2A;long&#x5230;&#x4E00;&#x4E2A;short&#x53EF;&#x80FD;&#x4F1A;&#x4E22;&#x5931;&#x6570;&#x636E;&#x3002;<br/>&#x540C;&#x6837;&#x7684;&#x95EE;&#x9898;&#x4E5F;&#x9690;&#x85CF;&#x5728;&#x5BF9;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7C7B;&#x578B;&#x7684;&#x8F6C;&#x6362;&#x4E0A;&#x3002;&#x8003;&#x8651;&#x8FD9;&#x6837;&#x7684;&#x7C7B;&#x578B;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public class SecondType<br/>{<br/>&nbsp;&nbsp;private MyType _value;<br/>&nbsp;&nbsp;// other details elided<br/>&nbsp;&nbsp;// Conversion operator.<br/>&nbsp;&nbsp;// This converts a SecondType to<br/>&nbsp;&nbsp;// a MyType, see item 29.<br/>&nbsp;&nbsp;public static implicit operator MyType( SecondType t )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return t._value;<br/>&nbsp;&nbsp;}<br/>}&#x5047;&#x8BBE;&#x4EE3;&#x7801;&#x7247;&#x6BB5;&#x4E2D;&#x5F00;&#x59CB;&#x7684;Factory.GetObject()&#x51FD;&#x6570;&#x8FD4;&#x56DE;&#x7684;&#x662F;SecondType &#x7C7B;&#x578B;&#x7684;&#x6570;&#x636E;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetObject( );<br/>// o is a SecondType:<br/>MyType t = o as MyType; // Fails. o is not MyType<br/>if ( t != null )<br/>{<br/>&nbsp;&nbsp;// work with t, it&#39;s a MyType.<br/>} else<br/>{<br/>&nbsp;&nbsp;// report the failure.<br/>}<br/>// Version two:<br/>try {<br/>&nbsp;&nbsp;MyType t1;<br/>&nbsp;&nbsp;t = ( MyType ) o; // Fails. o is not MyType<br/>&nbsp;&nbsp;if ( t1 != null )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// work with t1, it&#39;s a MyType.<br/>&nbsp;&nbsp;} else<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Report a null reference failure.<br/>&nbsp;&nbsp;}<br/>} catch<br/>{<br/>&nbsp;&nbsp;// report the conversion failure.<br/>}<br/>&#x4E24;&#x79CD;&#x8F6C;&#x6362;&#x90FD;&#x5931;&#x8D25;&#x4E86;&#x3002;&#x4F46;&#x662F;&#x6211;&#x544A;&#x8BC9;&#x8FC7;&#x4F60;&#xFF0C;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#x53EF;&#x4EE5;&#x5728;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x578B;&#x4E0A;&#x5B8C;&#x6210;&#x3002;&#x4F60;&#x5E94;&#x8BE5;&#x60F3;&#x5230;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#x4F1A;&#x6210;&#x529F;&#x3002;&#x4F60;&#x662F;&#x5BF9;&#x7684;--(&#x5982;&#x679C;)&#x5B83;&#x4EEC;&#x8DDF;&#x50CF;&#x4F60;&#x60F3;&#x7684;&#x4E00;&#x6837;&#x662F;&#x4F1A;&#x6210;&#x529F;&#x7684;&#x3002;&#x4F46;&#x662F;&#x8F6C;&#x6362;&#x5931;&#x8D25;&#x4E86;&#xFF0C;&#x56E0;&#x4E3A;&#x4F60;&#x7684;&#x7F16;&#x8BD1;&#x5668;&#x4E3A;&#x5BF9;&#x8C61;o&#x4EA7;&#x751F;&#x7684;&#x4EE3;&#x7801;&#x662F;&#x57FA;&#x4E8E;&#x7F16;&#x8BD1;&#x65F6;&#x7C7B;&#x578B;&#x3002;&#x800C;&#x5BF9;&#x4E8E;&#x8FD0;&#x884C;&#x65F6;&#x5BF9;&#x8C61;o&#xFF0C;&#x7F16;&#x8BD1;&#x5668;&#x4EC0;&#x4E48;&#x4E5F;&#x4E0D;&#x77E5;&#x9053;&#xFF0C;&#x5B83;&#x4EEC;&#x88AB;&#x89C6;&#x4E3A;System.Obejct&#x7C7B;&#x578B;&#x3002;&#x7F16;&#x8BD1;&#x5668;&#x8BA4;&#x4E3A;&#xFF0C;&#x4E0D;&#x5B58;&#x5728;System.Object&#x7C7B;&#x578B;&#x5230;&#x7528;&#x6237;&#x7C7B;&#x578B;MyType&#x7684;&#x8F6C;&#x6362;&#x3002;&#x5B83;&#x68C0;&#x6D4B;&#x4E86;System.Object&#x548C;MyType&#x7684;&#x5B9A;&#x4E49;&#x3002;&#x7F3A;&#x5C11;&#x4EFB;&#x610F;&#x7684;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#xFF0C;&#x7F16;&#x8BD1;&#x5668;(&#x4E3A;&#x6211;&#x4EEC;)&#x751F;&#x6210;&#x4E86;&#x7528;&#x4E8E;&#x68C0;&#x6D4B;&#x8FD0;&#x884C;&#x65F6;&#x5BF9;&#x8C61;o&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x5E76;&#x4E14;&#x68C0;&#x6D4B;&#x5B83;&#x662F;&#x4E0D;&#x662F;MyType&#x7C7B;&#x578B;&#x3002;&#x56E0;&#x4E3A;&#x5BF9;&#x8C61;o&#x662F;SecondType&#x7C7B;&#x578B;&#xFF0C;&#x6240;&#x4EE5;&#x5931;&#x8D25;&#x4E86;&#x3002;&#x7F16;&#x8BD1;&#x5668;&#x5E76;&#x4E0D;&#x53BB;&#x68C0;&#x6D4B;&#x5B9E;&#x9645;&#x8FD0;&#x884C;&#x65F6;&#x5BF9;&#x8C61;o&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x88AB;&#x8F6C;&#x6362;&#x4E3A;MyType&#x7C7B;&#x578B;&#x3002;<br/>&#x5982;&#x679C;&#x4F60;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x7801;&#x6BB5;&#xFF0C;&#x4F60;&#x5E94;&#x8BE5;&#x53EF;&#x4EE5;&#x6210;&#x529F;&#x7684;&#x5B8C;&#x6210;&#x4ECE;SecondType&#x5230;MyType&#x7684;&#x8F6C;&#x6362;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetObject( );<br/>// Version three:<br/>SecondType st = o as SecondType;<br/>try {<br/>&nbsp;&nbsp;MyType t;<br/>&nbsp;&nbsp;t = ( MyType ) st;<br/>&nbsp;&nbsp;if ( t != null )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// work with T, it&#39;s a MyType.<br/>&nbsp;&nbsp;} else<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Report a null reference failure.<br/>&nbsp;&nbsp;}<br/>} catch<br/>{<br/>&nbsp;&nbsp;// report the failure.<br/>}&#x4F60;&#x51B3;&#x4E0D;&#x5E94;&#x8BE5;&#x5199;&#x51FA;&#x5982;&#x679C;&#x7CDF;&#x7CD5;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x4F46;&#x5B83;&#x786E;&#x5B9E;&#x89E3;&#x51B3;&#x4E86;&#x4E00;&#x4E2A;&#x5F88;&#x5E38;&#x89C1;&#x7684;&#x96BE;&#x9898;&#x3002;&#x5C3D;&#x7BA1;&#x4F60;&#x51B3;&#x4E0D;&#x5E94;&#x8BE5;&#x8FD9;&#x6837;&#x5199;&#x4EE3;&#x7801;&#xFF0C;&#x4F46;&#x4F60;&#x53EF;&#x4EE5;&#x5199;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x7528;&#x4E00;&#x4E2A;System.Object&#x53C2;&#x6570;&#x6765;&#x5B8C;&#x6210;&#x6B63;&#x786E;&#x7684;&#x8F6C;&#x6362;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetObject( );<br/>DoStuffWithObject( o );<br/>private void DoStuffWithObject( object o2 )<br/>{<br/>&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyType t;<br/>&nbsp;&nbsp;&nbsp;&nbsp;t = ( MyType ) o2; // Fails. o is not MyType<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ( t != null )<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// work with T, it&#39;s a MyType.<br/>&nbsp;&nbsp;&nbsp;&nbsp;} else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Report a null reference failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;} catch<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;// report the conversion failure.<br/>&nbsp;&nbsp;}<br/>}<br/>&#x8BB0;&#x4F4F;&#xFF0C;&#x5BF9;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7C7B;&#x578B;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x8F6C;&#x6362;&#x64CD;&#x4F5C;&#x53EA;&#x662F;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x3002;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x5B58;&#x5728;&#x4ECB;&#x4E8E;o2&#x548C;MyType&#x4E4B;&#x95F4;&#x7684;&#x8F6C;&#x6362;&#x5E76;&#x6CA1;&#x6709;&#x5173;&#x7CFB;&#xFF0C;(&#x56E0;&#x4E3A;)&#x7F16;&#x8BD1;&#x5668;&#x5E76;&#x4E0D;&#x77E5;&#x9053;&#x4E5F;&#x4E0D;&#x5173;&#x5FC3;&#x8FD9;&#x4E9B;&#x3002;&#x8FD9;&#x6837;&#x7684;&#x8BED;&#x53E5;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x884C;&#x4E3A;&#xFF0C;&#x8FD9;&#x8981;&#x53D6;&#x51B3;&#x4E8E;&#x5BF9;st&#x7C7B;&#x578B;&#x7684;&#x7533;&#x660E;&#xFF1A;<br/>t = ( MyType ) st;<br/>(&#x8BD1;&#x6CE8;&#xFF1A;&#x4E0A;&#x9762;&#x8BF4;&#x7684;&#x6709;&#x4E9B;&#x6A21;&#x7CCA;&#x3002;&#x4E3A;&#x4EC0;&#x4E48;&#x4E0A;&#x9762;&#x7684;&#x4EE3;&#x7801;&#x53EF;&#x80FD;&#x4F1A;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x884C;&#x4E3A;&#x7684;&#x5462;&#xFF1F;&#x4E0D;&#x540C;&#x7684;&#x4EC0;&#x4E48;&#x884C;&#x4E3A;&#x5462;&#xFF1F;&#x4E3B;&#x8981;&#x5C31;&#x662F;&#xFF1A;&#x4E0A;&#x9762;&#x7684;&#x8FD9;&#x4E2A;&#x8F6C;&#x5316;&#xFF0C;&#x662F;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#x8FD8;&#x662F;&#x5728;&#x8FD0;&#x884C;&#x65F6;!&#x5982;&#x679C;st&#x662F;&#x7528;&#x6237;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x578B;&#xFF0C;&#x90A3;&#x4E48;&#x4E0A;&#x9762;&#x7684;&#x8F6C;&#x6362;&#x662F;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#x3002;&#x7F16;&#x8BD1;&#x5668;&#x628A;st&#x5F53;&#x6210;&#x4E3A;System.Object&#x7C7B;&#x578B;&#x6765;&#x7F16;&#x8BD1;&#x751F;&#x6210;&#x7684;IL&#x4EE3;&#x7801;&#xFF0C;&#x56E0;&#x6B64;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x662F;&#x65E0;&#x6CD5;&#x628A;&#x4E00;&#x4E2A;Object&#x7C7B;&#x578B;&#x8F6C;&#x5316;&#x4E3A;MyType&#x7C7B;&#x578B;&#x7684;&#x3002;&#x89E3;&#x51B3;&#x529E;&#x6CD5;&#x5C31;&#x662F;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;&#x65B9;&#x6CD5;,&#x591A;&#x52A0;&#x4E00;&#x6761;&#x8BED;&#x53E5;&#xFF0C;&#x5148;&#x628A;Object&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x4E3A;SecondType&#xFF0C;&#x7136;&#x540E;&#x518D;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#x4E3A;MyType&#x7C7B;&#x578B;&#x3002;&#x4F46;&#x662F;&#x5982;&#x679C;st&#x662F;&#x5185;&#x7F6E;&#x7C7B;&#x578B;&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x7684;&#x8F6C;&#x6362;&#x662F;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x7684;&#xFF0C;&#x8FD9;&#x6837;&#x7684;&#x8F6C;&#x5316;&#x6216;&#x8BB8;&#x4F1A;&#x6210;&#x529F;&#xFF0C;&#x770B;&#x540E;&#x9762;&#x7684;&#x8BF4;&#x660E;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x7C7B;&#x4F3C;&#x8FD9;&#x6837;&#x7684;&#x4EE3;&#x7801;&#xFF1A;MyType m_mytype = (m_secondType as SecondType) as MyType;&#x662F;&#x4E0D;&#x80FD;&#x901A;&#x8FC7;&#x7F16;&#x8BD1;&#x7684;&#xFF0C;&#x63D0;&#x793A;&#x9519;&#x8BEF;&#x662F;&#x65E0;&#x6CD5;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#x628A;SecondType&#x8F6C;&#x5316;&#x4E3A;MyType&#xFF0C;&#x5373;&#x4F7F;&#x662F;&#x91CD;&#x5199;&#x4E86;&#x8F6C;&#x6362;&#x64CD;&#x4F5C;&#x7B26;&#x3002;)<br/>&#x4F46;&#x4E0B;&#x9762;&#x7684;&#x8F6C;&#x6362;&#x53EA;&#x4F1A;&#x6709;&#x4E00;&#x79CD;&#x884C;&#x4E3A;&#xFF0C;&#x800C;&#x4E0D;&#x7BA1;st&#x662F;&#x4EC0;&#x4E48;&#x7C7B;&#x578B;&#x3002;<br/>&#x6240;&#x4EE5;&#x4F60;&#x5E94;&#x8BE5;&#x9009;&#x62E9;as&#x6765;&#x8F6C;&#x6362;&#x5BF9;&#x8C61;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5F3A;&#x5236;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x3002;&#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x5982;&#x679C;&#x8FD9;&#x4E9B;&#x7C7B;&#x578B;&#x4E0E;&#x7EE7;&#x627F;&#x6CA1;&#x6709;&#x5173;&#x7CFB;&#xFF0C;&#x4F46;&#x662F;&#x7528;&#x6237;&#x81EA;&#x5DF1;&#x5B9A;&#x4E49;&#x7684;&#x8F6C;&#x6362;&#x64CD;&#x4F5C;&#x7B26;&#x662F;&#x5B58;&#x5728;&#x7684;&#xFF0C;&#x90A3;&#x4E48;&#x4E0B;&#x9762;&#x7684;&#x8BED;&#x53E5;&#x8F6C;&#x6362;&#x5C06;&#x4F1A;&#x5F97;&#x5230;&#x4E00;&#x4E2A;&#x7F16;&#x8BD1;&#x9519;&#x8BEF;&#xFF1A;t = st as MyType;&#x73B0;&#x5728;&#x4F60;&#x5E94;&#x8BE5;&#x660E;&#x767D;&#x8981;&#x5C3D;&#x53EF;&#x80FD;&#x7684;&#x4F7F;&#x7528;as&#xFF0C;&#x4E0B;&#x9762;&#x6211;&#x4EEC;&#x6765;&#x8BA8;&#x8BBA;&#x4E0D;&#x80FD;&#x4F7F;&#x7528;as&#x7684;&#x65F6;&#x5019;&#x3002;as&#x8FD0;&#x7B97;&#x7B26;&#x5BF9;&#x503C;&#x7C7B;&#x578B;&#x662F;&#x65E0;&#x6548;&#x7684;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x7801;&#x65E0;&#x6CD5;&#x901A;&#x8FC7;&#x7F16;&#x8BD1;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetValue( );<br/>int i = o as int; // Does not compile.<br/>&#x8FD9;&#x662F;&#x56E0;&#x4E3A;&#x6574;&#x5F62;(ints)&#x6570;&#x636E;&#x662F;&#x503C;&#x7C7B;&#x578B;&#xFF0C;&#x5E76;&#x4E14;&#x5B83;&#x4EEC;&#x6C38;&#x8FDC;&#x4E0D;&#x4F1A;&#x4E3A;null&#x3002;&#x5F53;o&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x6574;&#x5F62;&#x7684;&#x65F6;&#x5019;&#xFF0C;i&#x5E94;&#x8BE5;&#x53D6;&#x4EC0;&#x4E48;&#x503C;&#x5462;&#xFF1F;&#x4E0D;&#x7BA1;&#x4F60;&#x9009;&#x62E9;&#x4EC0;&#x4E48;&#x503C;&#xFF0C;&#x5B83;&#x90FD;&#x5C06;&#x662F;&#x4E00;&#x4E2A;&#x65E0;&#x6548;&#x7684;&#x6574;&#x6570;&#x3002;&#x56E0;&#x6B64;&#xFF0C;as&#x4E0D;&#x80FD;&#x4F7F;&#x7528;(&#x5728;&#x503C;&#x7C7B;&#x578B;&#x6570;&#x636E;&#x4E0A;)&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x575A;&#x6301;&#x7528;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetValue( );<br/>int i = 0;<br/>try {<br/>&nbsp;&nbsp;i = ( int ) o;<br/>} catch<br/>{<br/>&nbsp;&nbsp;i = 0;<br/>}<br/>&#x4F46;&#x662F;&#x4F60;&#x5E76;&#x6CA1;&#x6709;&#x5FC5;&#x8981;&#x8FD9;&#x6837;&#x575A;&#x6301;&#x7528;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x7528;is&#x8BED;&#x53E5;&#x53D6;&#x6D88;&#x53EF;&#x80FD;&#x56E0;&#x8F6C;&#x6362;&#x5F15;&#x53D1;&#x7684;&#x5F02;&#x5E38;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;object o = Factory.GetValue( );<br/>int i = 0;<br/>if ( o is int )<br/>&nbsp;&nbsp;i = ( int ) o;<br/>(&#x8BD1;&#x6CE8;&#xFF1A;is&#x548C;as&#x4E00;&#x6837;&#xFF0C;&#x90FD;&#x662F;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x5B83;&#x4EEC;&#x5728;&#x4EFB;&#x4F55;&#x65F6;&#x5019;&#x90FD;&#x4E0D;&#x4F1A;&#x5728;&#x8F6C;&#x6362;&#x65F6;&#x53D1;&#x751F;&#x5F02;&#x5E38;&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x5148;&#x7528;is&#x6765;&#x5B89;&#x5168;&#x7684;&#x5224;&#x65AD;&#x4E00;&#x4E0B;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x3002;&#x4E0E;as&#x4E0D;&#x540C;&#x7684;&#x65F6;&#xFF0C;is&#x53EA;&#x662F;&#x505A;&#x7C7B;&#x578B;&#x68C0;&#x6D4B;&#x5E76;&#x8FD4;&#x56DE;&#x903B;&#x8F91;&#x503C;&#xFF0C;&#x4E0D;&#x505A;&#x8F6C;&#x6362;&#x3002;)<br/>&#x5982;&#x679C;o&#x662F;&#x5176;&#x5B83;&#x53EF;&#x8F6C;&#x5316;&#x4E3A;&#x6574;&#x5F62;&#x7684;&#x7C7B;&#x578B;(&#x8BD1;&#x6CE8;&#xFF1A;&#x4F46;o&#x5E76;&#x4E0D;&#x662F;&#x771F;&#x6B63;&#x7684;&#x6574;&#x5F62;)&#xFF0C;&#x4F8B;&#x5982;double&#xFF0C;&#x90A3;&#x4E48;is&#x8FD0;&#x7B97;&#x64CD;&#x4F5C;&#x4F1A;&#x8FD4;&#x56DE;false&#x3002;&#x5BF9;&#x4E8E;null&#xFF0C;is&#x603B;&#x662F;&#x8FD4;&#x56DE;false&#x3002;<br/>is&#x53EA;&#x5E94;&#x8BE5;&#x5728;&#x4F60;&#x65E0;&#x6CD5;&#x7528;as&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x65F6;&#x4F7F;&#x7528;&#x3002;<br/>&#x53E6;&#x5916;&#xFF0C;&#x8FD9;&#x662F;&#x65E0;&#x610F;&#x4E49;&#x7684;&#x5197;&#x4F59;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;// correct, but redundant:<br/>object o = Factory.GetObject( );<br/>MyType t = null;<br/>if ( o is MyType )<br/>&nbsp;&nbsp;t = o as MyType;<br/>&#x5982;&#x679C;&#x4F60;&#x5199;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x90A3;&#x4E48;&#x8DDF;&#x4E0A;&#x9762;&#x4E00;&#x6837;&#xFF0C;&#x90FD;&#x662F;&#x5197;&#x4F59;&#x7684;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;// correct, but redundant:<br/>object o = Factory.GetObject( );<br/>MyType t = null;<br/>if ( ( o as MyType ) != null )<br/>&nbsp;&nbsp;t = o as MyType;<br/>&#x8FD9;&#x90FD;&#x662F;&#x4F4E;&#x6548;&#x4E14;&#x5197;&#x4F59;&#x7684;&#x3002;&#x5982;&#x679C;&#x4F60;&#x4F7F;&#x7528;as&#x6765;&#x8F6C;&#x6362;&#x6570;&#x636E;&#xFF0C;&#x90A3;&#x4E48;&#x7528;is&#x6765;&#x505A;&#x68C0;&#x6D4B;&#x662F;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x3002;&#x53EA;&#x7528;&#x68C0;&#x6D4B;&#x8FD4;&#x56DE;&#x7C7B;&#x578B;&#x662F;&#x5426;&#x4E3A;null&#x5C31;&#x884C;&#x4E86;&#xFF0C;&#x8FD9;&#x5F88;&#x7B80;&#x5355;&#x3002;<br/>&#x73B0;&#x5728;&#xFF0C;&#x4F60;&#x5DF2;&#x7ECF;&#x77E5;&#x9053;is,as&#x548C;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x4E4B;&#x95F4;&#x7684;&#x533A;&#x522B;&#x4E86;&#x3002;&#x800C;&#x5728;foreach&#x7684;&#x5FAA;&#x73AF;&#x4E2D;&#xFF0C;&#x662F;&#x4F7F;&#x7528;&#x7684;&#x54EA;&#x4E00;&#x79CD;&#x8F6C;&#x6362;&#x5462;&#xFF1F;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public void UseCollection( IEnumerable theCollection )<br/>{<br/>&nbsp;&nbsp;foreach ( MyType t in theCollection )<br/>&nbsp;&nbsp;&nbsp;&nbsp;t.DoStuff( );<br/>}<br/>foreach&#x5FAA;&#x73AF;&#x662F;&#x7528;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x6765;&#x5B8C;&#x6210;&#x628A;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x8F6C;&#x6362;&#x6210;&#x5FAA;&#x73AF;&#x53EF;&#x7528;&#x7684;&#x7C7B;&#x578B;&#x3002;&#x4E0A;&#x9762;&#x7684;&#x5FAA;&#x73AF;&#x4EE3;&#x7801;&#x4E0E;&#x4E0B;&#x9762;&#x624B;&#x5199;&#x7684;&#x4EE3;&#x7801;(hand-coded)&#x662F;&#x7B49;&#x6548;&#x7684;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public void UseCollection( IEnumerable theCollection )<br/>{<br/>&nbsp;&nbsp;IEnumerator it = theCollection.GetEnumerator( );<br/>&nbsp;&nbsp;while ( it.MoveNext( ) )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyType t = ( MyType ) it.Current;<br/>&nbsp;&nbsp;&nbsp;&nbsp;t.DoStuff( );<br/>&nbsp;&nbsp;}<br/>}<br/>foreach&#x987B;&#x8981;&#x7528;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x6765;&#x540C;&#x65F6;&#x652F;&#x6301;&#x5BF9;&#x503C;&#x7C7B;&#x578B;&#x548C;&#x5F15;&#x7528;&#x7C7B;&#x578B;&#x7684;&#x8F6C;&#x6362;&#x3002;&#x901A;&#x8FC7;&#x9009;&#x62E9;&#x5F3A;&#x5236;&#x8F6C;&#x5316;&#xFF0C;foreach&#x5FAA;&#x73AF;&#x5C31;&#x53EF;&#x4EE5;&#x91C7;&#x7528;&#x4E00;&#x6837;&#x7684;&#x884C;&#x4E3A;&#xFF0C;&#x800C;&#x4E0D;&#x7528;&#x7BA1;(&#x5FAA;&#x73AF;)&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#x662F;&#x4EC0;&#x4E48;&#x7C7B;&#x578B;&#x3002;&#x4E0D;&#x7BA1;&#x600E;&#x6837;&#xFF0C;&#x56E0;&#x4E3A;foreach&#x5FAA;&#x73AF;&#x662F;&#x7528;&#x7684;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#xFF0C;&#x56E0;&#x4E9B;&#x5B83;&#x53EF;&#x80FD;&#x4F1A;&#x4EA7;&#x751F;BadCastExceptions&#x7684;&#x5F02;&#x5E38;&#x3002;<br/>&#x56E0;&#x4E3A;IEnumberator.Current&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;System.Obejct&#x5BF9;&#x8C61;&#xFF0C;&#x8BE5;&#x5BF9;&#x8C61;&#x6CA1;&#x6709;(&#x91CD;&#x5199;)&#x8F6C;&#x6362;&#x64CD;&#x4F5C;&#x7B26;&#xFF0C;&#x6240;&#x4EE5;&#x5B83;&#x4EEC;&#x6CA1;&#x6709;&#x4E00;&#x4E2A;&#x6EE1;&#x8DB3;(&#x6211;&#x4EEC;&#x5728;&#x4E0A;&#x9762;&#x505A;&#x7684;)&#x6D4B;&#x8BD5;&#x3002;<br/>(&#x8BD1;&#x6CE8;&#xFF1A;&#x8FD9;&#x91CC;&#x662F;&#x8BF4;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x7528;&#x4E00;&#x4E2A;&#x96C6;&#x5408;&#x5B58;&#x653E;&#x4E86;SecondType&#xFF0C;&#x800C;&#x4F60;&#x53C8;&#x60F3;&#x7528;MyType&#x6765;&#x5BF9;&#x5B83;&#x8FDB;&#x884C;foreach&#x5FAA;&#x73AF;&#xFF0C;&#x90A3;&#x4E48;&#x8F6C;&#x6362;&#x662F;&#x5931;&#x8D25;&#x7684;&#xFF0C;&#x539F;&#x56E0;&#x662F;&#x5728;&#x5FAA;&#x73AF;&#x65F6;&#xFF0C;&#x5E76;&#x4E0D;&#x662F;&#x7528;SecondType&#xFF0C;&#x800C;&#x662F;&#x7528;&#x7684;System.Object&#xFF0C;&#x56E0;&#x6B64;&#xFF0C;&#x5728;foreach&#x5FAA;&#x73AF;&#x91CC;&#x505A;&#x7684;&#x8F6C;&#x6362;&#x4E0E;&#x524D;&#x9762;&#x8BF4;&#x7684;&#xFF1A;MyType t = ( MyType ) o;&#x662F;&#x4E00;&#x6837;&#x7684;&#x9519;&#x8BEF;&#xFF0C;&#x8FD9;&#x91CC;&#x7684;o&#x662F;SecondType&#xFF0C;&#x4F46;&#x662F;&#x662F;&#x4EE5;System.Object&#x5B58;&#x5728;&#x3002;)<br/>&#x6B63;&#x5982;&#x4F60;&#x5DF2;&#x7ECF;&#x77E5;&#x9053;&#x7684;&#xFF0C;&#x4E00;&#x4E2A;&#x5B58;&#x653E;&#x4E86;SecondType&#x7684;&#x96C6;&#x5408;&#x662F;&#x4E0D;&#x80FD;&#x5728;&#x524D;&#x9762;&#x7684;&#x51FD;&#x6570;UseCollection&#x4E2D;&#x4F7F;&#x7528;&#x5FAA;&#x73AF;&#x7684;&#xFF0C;&#x8FD9;&#x4F1A;&#x662F;&#x5931;&#x8D25;&#x7684;&#x3002;&#x7528;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x7684;foreach&#x5FAA;&#x73AF;&#x4E0D;&#x4F1A;&#x5728;&#x8F6C;&#x6362;&#x65F6;&#x68C0;&#x6D4B;&#x5FAA;&#x73AF;&#x96C6;&#x5408;&#x4E2D;&#x7684;&#x5BF9;&#x8C61;&#x662F;&#x5426;&#x5177;&#x6709;&#x6709;&#x6548;&#x7684;&#x8FD0;&#x884C;&#x65F6;&#x7C7B;&#x578B;&#x3002;&#x5B83;&#x53EA;&#x68C0;&#x6D4B;&#x7531;IEnumerator.Current&#x8FD4;&#x56DE;&#x6765;&#x7684;System.Object&#x662F;&#x5426;&#x53EF;&#x8F6C;&#x6362;&#x4E3A;&#x5FAA;&#x73AF;&#x4E2D;&#x4F7F;&#x7528;&#x7684;&#x5BF9;&#x8C61;&#x7C7B;&#x578B;&#xFF0C;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D;&#x662F;MyType&#x7C7B;&#x578B;&#x3002;<br/>&#x6700;&#x540E;&#xFF0C;&#x6709;&#x4E9B;&#x65F6;&#x5019;&#x4F60;&#x60F3;&#x77E5;&#x9053;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x7CBE;&#x786E;&#x7C7B;&#x578B;&#xFF0C;&#x800C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x6EE1;&#x8DB3;&#x5F53;&#x524D;&#x53EF;&#x8F6C;&#x6362;&#x7684;&#x76EE;&#x6807;&#x7C7B;&#x578B;&#x3002;as&#x8FD0;&#x7B97;&#x7B26;&#x5728;&#x4E3A;&#x4EFB;&#x4F55;&#x4E00;&#x4E2A;&#x4ECE;&#x76EE;&#x6807;&#x7C7B;&#x578B;&#x4E0A;&#x6D3E;&#x751F;&#x7684;&#x5BF9;&#x8C61;&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x65F6;&#x8FD4;&#x56DE;true&#x3002;GetType()&#x65B9;&#x6CD5;&#x53D6;&#x5F97;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x8FD0;&#x884C;&#x65F6;&#x5BF9;&#x8C61;&#xFF0C;&#x5B83;&#x63D0;&#x4F9B;&#x4E86;&#x6BD4;is&#x548C;as&#x66F4;&#x4E25;&#x683C;&#x7684;(&#x7C7B;&#x578B;)&#x6D4B;&#x8BD5;&#x3002;GetType()&#x8FD4;&#x56DE;&#x7684;&#x7C7B;&#x578B;&#x53EF;&#x4EE5;&#x4E0E;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x578B;&#x8FDB;&#x884C;&#x6BD4;&#x8F83;(&#xFF0C;&#x4ECE;&#x800C;&#x77E5;&#x9053;&#x5B83;&#x662F;&#x4E0D;&#x662F;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x7684;&#x7C7B;&#x578B;)&#x3002;<br/>&#x518D;&#x6B21;&#x8003;&#x8651;&#x8FD9;&#x4E2A;&#x51FD;&#x6570;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public void UseCollection( IEnumerable theCollection )<br/>{<br/>&nbsp;&nbsp;foreach ( MyType t in theCollection )<br/>&nbsp;&nbsp;&nbsp;&nbsp;t.DoStuff( );<br/>}<br/>&#x5982;&#x679C;&#x4F60;&#x6DFB;&#x52A0;&#x4E86;&#x4E00;&#x4E2A;&#x6D3E;&#x751F;&#x81EA;MyType&#x7684;&#x65B0;&#x7C7B;NewType&#xFF0C;&#x90A3;&#x4E48;&#x4E00;&#x4E2A;&#x5B58;&#x653E;&#x4E86;NewType&#x7C7B;&#x578B;&#x5BF9;&#x8C61;&#x7684;&#x96C6;&#x5408;&#x53EF;&#x4EE5;&#x5F88;&#x597D;&#x7684;&#x5728;UseCollection &#x51FD;&#x6570;&#x4E2D;&#x5DE5;&#x4F5C;&#x3002;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public class NewType : MyType<br/>{<br/>&nbsp;&nbsp;// contents elided.<br/>}<br/>&#x5982;&#x679C;&#x4F60;&#x60F3;&#x8981;&#x5199;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x4F7F;&#x5B83;&#x5BF9;&#x6240;&#x6709;MyType&#x7C7B;&#x578B;&#x7684;&#x5B9E;&#x4F8B;&#x90FD;&#x80FD;&#x5DE5;&#x4F5C;&#xFF0C;&#x4E0A;&#x9762;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x975E;&#x5E38;&#x4E0D;&#x9519;&#x7684;&#x3002;&#x5982;&#x679C;&#x4F60;&#x53EA;&#x60F3;&#x5199;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x53EA;&#x5BF9;&#x7CBE;&#x786E;&#x7684;MyType&#x5BF9;&#x8C61;&#x6709;&#x6548;&#xFF0C;&#x90A3;&#x4F60;&#x5FC5;&#x987B;&#x7528;&#x7CBE;&#x786E;&#x7684;&#x7C7B;&#x578B;&#x6BD4;&#x8F83;&#x3002;&#x8FD9;&#x91CC;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;foreach&#x5FAA;&#x73AF;&#x7684;&#x5185;&#x90E8;&#x5B8C;&#x6210;&#x3002;&#x5927;&#x591A;&#x6570;&#x65F6;&#x5019;&#xFF0C;&#x8BA4;&#x4E3A;&#x8FD0;&#x884C;&#x65F6;&#x786E;&#x5B9A;&#x5BF9;&#x8C61;&#x7684;&#x7CBE;&#x786E;&#x7C7B;&#x578B;&#x662F;&#x5F88;&#x91CD;&#x8981;&#x7684;&#xFF0C;&#x662F;&#x5728;&#x4E3A;&#x5BF9;&#x8C61;&#x505A;&#x76F8;&#x7B49;&#x6D4B;&#x8BD5;&#x7684;&#x65F6;&#x5019;&#x3002;&#x5728;&#x5927;&#x591A;&#x6570;&#x5176;&#x5B83;&#x7684;&#x6BD4;&#x8F83;&#x4E2D;&#xFF0C;&#x7531;is&#x548C;as&#x63D0;&#x4F9B;&#x7684;.isinst(&#x8BD1;&#x6CE8;&#xFF1A;IL&#x6307;&#x4EE4;)&#x6BD4;&#x8F83;&#xFF0C;&#x4ECE;&#x8BED;&#x4E49;&#x4E0A;&#x8BB2;&#x5DF2;&#x7ECF;&#x662F;&#x6B63;&#x786E;&#x7684;&#x4E86;&#x3002;<br/>&#x597D;&#x7684;&#x9762;&#x5411;&#x5BF9;&#x8C61;&#x5B9E;&#x8DF5;&#x544A;&#x8BC9;&#x6211;&#x4EEC;&#xFF0C;&#x4F60;&#x5E94;&#x8BE5;&#x907F;&#x514D;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#xFF0C;&#x4F46;&#x6709;&#x4E9B;&#x65F6;&#x5019;&#x6211;&#x6CA1;&#x522B;&#x65E0;&#x9009;&#x62E9;&#x3002;&#x5F53;&#x4F60;&#x65E0;&#x6CD5;&#x907F;&#x514D;&#x8F6C;&#x6362;&#x65F6;&#xFF0C;&#x7528;(C#)&#x8BED;&#x8A00;&#x4E3A;&#x6211;&#x4EEC;&#x63D0;&#x4F9B;&#x7684;is&#x548C;as&#x8FD0;&#x7B97;&#x7B26;&#x6765;&#x6E05;&#x695A;&#x7684;&#x8868;&#x8FBE;&#x4F60;&#x7684;&#x610F;&#x601D;&#x5427;&#x3002;&#x4E0D;&#x540C;&#x65B9;&#x6CD5;&#x7684;&#x5F3A;&#x5236;&#x8F6C;&#x6362;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x89C4;&#x5219;&#x3002;&#x4ECE;&#x8BED;&#x4E49;&#x4E0A;&#x8BB2;&#xFF0C;is&#x548C;as&#x5728;&#x7EDD;&#x5927;&#x591A;&#x8F6C;&#x6362;&#x4E0A;&#x6B63;&#x786E;&#x7684;&#xFF0C;&#x5E76;&#x5F53;&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#x662F;&#x6B63;&#x786E;&#x7684;&#x7C7B;&#x578B;&#x65F6;&#xFF0C; &#x5B83;&#x4EEC;&#x603B;&#x662F;&#x6210;&#x529F;&#x7684;&#x3002;&#x5E94;&#x8BE5;&#x9009;&#x62E9;&#x8FD9;&#x4E9B;&#x57FA;&#x672C;&#x6307;&#x4EE4;&#x6765;&#x8F6C;&#x6362;&#x5BF9;&#x8C61;&#xFF0C;&#x81F3;&#x5C11;&#x5B83;&#x4EEC;&#x4F1A;&#x5982;&#x4F60;&#x6240;&#x671F;&#x671B;&#x7684;&#x90A3;&#x6837;&#x6210;&#x529F;&#x6216;&#x8005;&#x5931;&#x8D25;&#xFF1B;&#x800C;&#x4E0D;&#x662F;&#x9009;&#x62E9;&#x5F3A;&#x5236;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#xFF0C;&#x8FD9;&#x8F6C;&#x6362;&#x4F1A;&#x4EA7;&#x751F;&#x4E00;&#x4E9B;&#x610F;&#x60F3;&#x4E0D;&#x5230;&#x7684;&#x526F;&#x4F5C;&#x7528;&#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.078&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;&#x33;&#xFF1A;&#x9009;&#x62E9;&#x69;&#x73;&#x6216;&#x8005;&#x61;&#x73;&#x64CD;&#x4F5C;&#x7B26;&#x800C;&#x4E0D;&#x662F;&#x505A;&#x5F3A;&#x5236;&#x7C7B;&#x578B;&#x8F6C;&#x6362;</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.078&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.078&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
