﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-linuxSeek的.Net学习天空</title><link>http://www.cnblogs.com/linuxSeek/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 09 Jan 2009 22:08:34 GMT</lastBuildDate><pubDate>Fri, 09 Jan 2009 22:08:34 GMT</pubDate><ttl>60</ttl><item><title>[转载]堆和栈的区别</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/05/11/153422.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Wed, 11 May 2005 12:59:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/05/11/153422.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/153422.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/05/11/153422.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/153422.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/153422.html</trackback:ping><description><![CDATA[这篇文章google了一下也没有发现作者是谁，如果作者看到这篇文章可以联系我加上你的版权信息！
<br/>
<br/>
<br/>
<div style="OVERFLOW: hidden; WORD-BREAK: break-all; WORD-WRAP: break-word">堆和栈的区别
<br/>
<br/>一、预备知识—程序的内存分配
<br/>一个由c/C++编译的程序占用的内存分为以下几个部分
<br/>1、栈区（stack）— 由编译器自动分配释放 ，存放函数的参数值，局部变量的值等。其操作方式类似于数据结构中的栈。
<br/>2、堆区（heap） — 一般由程序员分配释放， 若程序员不释放，程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事，分配方式倒是类似于链表，呵呵。
<br/>3、全局区（静态区）（static）—，全局变量和静态变量的存储是放在一块的，初始化的全局变量和静态变量在一块区域， 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 
<br/>4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放
<br/>5、程序代码区—存放函数体的二进制代码。
<br/>二、例子程序 
<br/>这是一个前辈写的，非常详细 
<br/>//main.cpp 
<br/>int a = 0; 全局初始化区 
<br/>char *p1; 全局未初始化区 
<br/>main() 
<br/>{ 
<br/>int b; 栈 
<br/>char s[] = &quot;abc&quot;; 栈 
<br/>char *p2; 栈 
<br/>char *p3 = &quot;123456&quot;; 123456在常量区，p3在栈上。 
<br/>static int c =0； 全局（静态）初始化区 
<br/>p1 = (char *)malloc(10); 
<br/>p2 = (char *)malloc(20); 
<br/>分配得来得10和20字节的区域就在堆区。 
<br/>strcpy(p1, &quot;123456&quot;); 123456放在常量区，编译器可能会将它与p3所指向的&quot;123456&quot;优化成一个地方。 
<br/>} 
<br/>
<br/>
<br/>二、堆和栈的理论知识 
<br/>2.1申请方式 
<br/>stack: 
<br/>由系统自动分配。 例如，声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 
<br/>heap: 
<br/>需要程序员自己申请，并指明大小，在c中malloc函数 
<br/>如p1 = (char *)malloc(10); 
<br/>在C++中用new运算符 
<br/>如p2 = (char *)malloc(10); 
<br/>但是注意p1、p2本身是在栈中的。 
<br/>
<br/>
<br/>2.2 
<br/>申请后系统的响应 
<br/>栈：只要栈的剩余空间大于所申请空间，系统将为程序提供内存，否则将报异常提示栈溢出。 
<br/>堆：首先应该知道操作系统有一个记录空闲内存地址的链表，当系统收到程序的申请时， 
<br/>会遍历该链表，寻找第一个空间大于所申请空间的堆结点，然后将该结点从空闲结点链表中删除，并将该结点的空间分配给程序，另外，对于大多数系统，会在这块内存空间中的首地址处记录本次分配的大小，这样，代码中的delete语句才能正确的释放本内存空间。另外，由于找到的堆结点的大小不一定正好等于申请的大小，系统会自动的将多余的那部分重新放入空闲链表中。 
<br/>
<br/>2.3申请大小的限制 
<br/>栈：在Windows下,栈是向低地址扩展的数据结构，是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的，在WINDOWS下，栈的大小是2M（也有的说是1M，总之是一个编译时就确定的常数），如果申请的空间超过栈的剩余空间时，将提示overflow。因此，能从栈获得的空间较小。 
<br/>堆：堆是向高地址扩展的数据结构，是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的，自然是不连续的，而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见，堆获得的空间比较灵活，也比较大。 
<br/>
<br/>
<br/>2.4申请效率的比较： 
<br/>栈由系统自动分配，速度较快。但程序员是无法控制的。 
<br/>堆是由new分配的内存，一般速度比较慢，而且容易产生内存碎片,不过用起来最方便. 
<br/>另外，在WINDOWS下，最好的方式是用VirtualAlloc分配内存，他不是在堆，也不是在栈是直接在进程的地址空间中保留一快内存，虽然用起来最不方便。但是速度快，也最灵活。 
<br/>
<br/>2.5堆和栈中的存储内容 
<br/>栈： 在函数调用时，第一个进栈的是主函数中后的下一条指令（函数调用语句的下一条可执行语句）的地址，然后是函数的各个参数，在大多数的C编译器中，参数是由右往左入栈的，然后是函数中的局部变量。注意静态变量是不入栈的。 
<br/>当本次函数调用结束后，局部变量先出栈，然后是参数，最后栈顶指针指向最开始存的地址，也就是主函数中的下一条指令，程序由该点继续运行。 
<br/>堆：一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。 
<br/>
<br/>2.6存取效率的比较 
<br/>
<br/>char s1[] = &quot;aaaaaaaaaaaaaaa&quot;; 
<br/>char *s2 = &quot;bbbbbbbbbbbbbbbbb&quot;; 
<br/>aaaaaaaaaaa是在运行时刻赋值的； 
<br/>而bbbbbbbbbbb是在编译时就确定的； 
<br/>但是，在以后的存取中，在栈上的数组比指针所指向的字符串(例如堆)快。 
<br/>比如： 
<br/>#include 
<br/>void main() 
<br/>{ 
<br/>char a = 1; 
<br/>char c[] = &quot;1234567890&quot;; 
<br/>char *p =&quot;1234567890&quot;; 
<br/>a = c[1]; 
<br/>a = p[1]; 
<br/>return; 
<br/>} 
<br/>对应的汇编代码 
<br/>10: a = c[1]; 
<br/>00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh] 
<br/>0040106A 88 4D FC mov byte ptr [ebp-4],cl 
<br/>11: a = p[1]; 
<br/>0040106D 8B 55 EC mov edx,dword ptr [ebp-14h] 
<br/>00401070 8A 42 01 mov al,byte ptr [edx+1] 
<br/>00401073 88 45 FC mov byte ptr [ebp-4],al 
<br/>第一种在读取时直接就把字符串中的元素读到寄存器cl中，而第二种则要先把指针值读到edx中，在根据edx读取字符，显然慢了。 
<br/>
<br/>
<br/>2.7小结： 
<br/>堆和栈的区别可以用如下的比喻来看出： 
<br/>使用栈就象我们去饭馆里吃饭，只管点菜（发出申请）、付钱、和吃（使用），吃饱了就走，不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作，他的好处是快捷，但是自由度小。 
<br/>使用堆就象是自己动手做喜欢吃的菜肴，比较麻烦，但是比较符合自己的口味，而且自由度大。
</div><!-- / message --><!-- sig --><img src ="http://www.cnblogs.com/linuxSeek/aggbug/153422.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44385/" target="_blank">CES2009:思科展示新娱乐操作系统 进军社交网络</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>DrowDownList的SelectedIndex如何确定？</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/04/28/147218.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Thu, 28 Apr 2005 15:21:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/04/28/147218.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/147218.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/04/28/147218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/147218.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/147218.html</trackback:ping><description><![CDATA[今天在首页上发现这篇文章<a id="RecentPostsRepeater_RecentPostsRepeater__ctl4_lnkTitle" href="/jlzhou/archive/2005/04/28/147037.html"><font color="#800080">关于ASP.NET控件DropDownList控件的问题</font></a>&#160;，觉得有意思，于是自己试了一下，结果还真如文章作者所说。 
<br/>
<br/>于是我用<a href="http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector">reflector</a>查看了一下DropDownList的源码，在LoadPostData方法中我发现了这样的代码： 
<br/>
<table cellSpacing="0" cellPadding="0" width="100%" style="MARGIN-BOTTOM: 0px">
   <tbody>
       <tr>
           <td vAlign="top" colSpan="2" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px"><pre><font color="#1000a0">protected</font> <font color="#1000a0">virtual</font> <a title="System.Boolean" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=1">bool</a> <b>LoadPostData</b>(<a title="System.String" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=2">string</a> postDataKey, <a title="System.Collections.Specialized.NameValueCollection" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=3">NameValueCollection</a> postCollection)
{
      <a title="System.String" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=4">string</a>[] <b>textArray1</b> = <a title="NameValueCollection postCollection; // Parameter">postCollection</a>.<a title="string[] System.Collections.Specialized.NameValueCollection.GetValues(string);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=5">GetValues</a>(<a title="string postDataKey; // Parameter">postDataKey</a>);
      <font color="#1000a0">this</font>.<a title="void System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound();" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=6">EnsureDataBound</a>();
      <font color="#1000a0">if</font> (<a title="string[] textArray1 // Local Variable">textArray1</a> != <font color="#800000">null</font>)
      {
            <a title="System.Int32" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=7">int</a> <b>num1</b> = <font color="#1000a0">this</font>.<a title="ListItemCollection System.Web.UI.WebControls.ListControl.Items { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=8">Items</a>.<a title="int System.Web.UI.WebControls.ListItemCollection.FindByValueInternal(string value, bool includeDisabled);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=9">FindByValueInternal</a>(<a title="string[] textArray1 // Local Variable">textArray1</a>[<font color="#800000">0</font>], <font color="#800000">false</font>);
            <font color="#1000a0">if</font> (<font color="#1000a0">this</font>.<a title="int System.Web.UI.WebControls.ListControl.SelectedIndex { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=10">SelectedIndex</a> != <a title="int num1 // Local Variable">num1</a>)
            {
                  <font color="#1000a0">base</font>.<a title="void System.Web.UI.WebControls.ListControl.SetPostDataSelection(int selectedIndex);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=11">SetPostDataSelection</a>(<a title="int num1 // Local Variable">num1</a>);
                  <font color="#1000a0">return</font> <font color="#800000">true</font>;
            }
      }
      <font color="#1000a0">return</font> <font color="#800000">false</font>;
}</pre>
           </td>
       </tr>
   </tbody>
</table>SetPostDataSelection(设定选定Item)：
<br/>
<table cellSpacing="0" cellPadding="0" width="100%" style="MARGIN-BOTTOM: 0px">
   <tbody>
       <tr>
           <td vAlign="top" colSpan="2" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px"><pre><font color="#1000a0">protected</font> <a title="System.Void" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=1">void</a> <b>SetPostDataSelection</b>(<a title="System.Int32" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=2">int</a> selectedIndex)
{
      <font color="#1000a0">if</font> ((<font color="#1000a0">this</font>.<a title="ListItemCollection System.Web.UI.WebControls.ListControl.Items { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=3">Items</a>.<a title="int System.Web.UI.WebControls.ListItemCollection.Count { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=4">Count</a> != <font color="#800000">0</font>) &amp;&amp; (<a title="int selectedIndex; // Parameter">selectedIndex</a> &lt; <font color="#1000a0">this</font>.<a title="ListItemCollection System.Web.UI.WebControls.ListControl.Items { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=5">Items</a>.<a title="int System.Web.UI.WebControls.ListItemCollection.Count { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=6">Count</a>))
      {
            <font color="#1000a0">this</font>.<a title="void System.Web.UI.WebControls.ListControl.ClearSelection();" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=7">ClearSelection</a>();
            <font color="#1000a0">if</font> (<a title="int selectedIndex; // Parameter">selectedIndex</a> &gt;= <font color="#800000">0</font>)
            {
                  <font color="#1000a0">this</font>.<a title="ListItemCollection System.Web.UI.WebControls.ListControl.Items { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=8">Items</a>[<a title="int selectedIndex; // Parameter">selectedIndex</a>].<a title="bool System.Web.UI.WebControls.ListItem.Selected { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=9">Selected</a> = <font color="#800000">true</font>;
            }
      }
}</pre>
           </td>
       </tr>
   </tbody>
</table>
<br/>FindByValueInternal方法的代码如下： 
<br/>
<table cellSpacing="0" cellPadding="0" width="100%" style="MARGIN-BOTTOM: 0px">
   <tbody>
       <tr>
           <td vAlign="top" colSpan="2" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px"><pre><font color="#1000a0">internal</font> <a title="System.Int32" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=1">int</a> <b>FindByValueInternal</b>(<a title="System.String" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=2">string</a> value, <a title="System.Boolean" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=3">bool</a> includeDisabled)
{
      <a title="System.Int32" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=4">int</a> <b>num1</b> = <font color="#800000">0</font>;
      <font color="#1000a0">foreach</font> (<a title="System.Web.UI.WebControls.ListItem" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=5">ListItem</a> <b>item1</b> <font color="#1000a0">in</font> <font color="#1000a0">this</font>.<a title="ArrayList System.Web.UI.WebControls.ListItemCollection.listItems;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=6">listItems</a>)
      {
            <font color="#1000a0">if</font> (<a title="ListItem item1 // Local Variable">item1</a>.<a title="string System.Web.UI.WebControls.ListItem.Value { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=7">Value</a>.<a title="bool System.String.Equals(string);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=8">Equals</a>(<a title="string value; // Parameter">value</a>) &amp;&amp; (<a title="bool includeDisabled; // Parameter">includeDisabled</a> || <a title="ListItem item1 // Local Variable">item1</a>.<a title="bool System.Web.UI.WebControls.ListItem.Enabled { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Object=9">Enabled</a>))
            {
                  <font color="#1000a0">return</font> <a title="int num1 // Local Variable">num1</a>;
            }
            <a title="int num1 // Local Variable">num1</a>++;
      }
      <font color="#1000a0">return</font> <font color="#800000">-1</font>;
}</pre>
           </td>
       </tr>
   </tbody>
</table>根据以上两个方法的源码我发现DropDownList的SelectedIndex的确定与ListItem的Value属性的值有关。 
<br/>DropDownList根据ListItem的Value属性的值来确定SelectedIndex属性。DropDownList在确定SelectedIndex属性的值时会遍历Items中的ListItem,查找与指定值想对应的ListItem,每次遍历递增索引值。 
<br/>
<br/>如下例： 
<br/>
<table cellSpacing="0" cellPadding="3" border="1" style="WIDTH: 320px; BORDER-COLLAPSE: collapse">
   <tbody>
       <tr>
           <td>Value</td>
           <td>Text</td>
       </tr>
       <tr>
           <td>0</td>
           <td>香蕉</td>
       </tr>
       <tr>
           <td>1</td>
           <td>苹果</td>
       </tr>
       <tr>
           <td>2</td>
           <td>桔子</td>
       </tr>
       <tr>
           <td>0</td>
           <td>西瓜</td>
       </tr>
       <tr>
           <td>1</td>
           <td>葡萄</td>
       </tr>
   </tbody>
</table>
<br/>当选中西瓜时，DropDownList会遍历Items，根据Value来确定SelectedIndex,然而香蕉的Value与西瓜的一样，也就是说，当遍历到香蕉时，DropDownList会认为你选择的是香蕉,FindByValueInteral中num1值为0，从而SelectedIndex=0了。<img src ="http://www.cnblogs.com/linuxSeek/aggbug/147218.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44382/" target="_blank">搜索引擎 创意 shell</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>使用 ref 和 out 传递数组</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/03/31/129404.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Thu, 31 Mar 2005 08:51:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/03/31/129404.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/129404.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/03/31/129404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/129404.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/129404.html</trackback:ping><description><![CDATA[<p>与所有的 <a href="vclrfout.htm"><font color="#0000ff">out</font></a> 参数一样，在使用数组类型的 <b>out</b> 参数前必须先为其赋值，即必须由接受方为其赋值。例如：
</p>
<p></p>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[]&#160;arr)&#160;
<br/><img id="Codehighlighter1_44_100_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_44_100_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_44_100_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_44_100_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_44_100_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_44_100_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_44_100_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_44_100_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_44_100_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_44_100_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;arr&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;definite&#160;assignment&#160;of&#160;arr</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span>
   </div>
</div>
<p>与所有的 <a href="vclrfref.htm"><font color="#0000ff">ref</font></a> 参数一样，数组类型的 <b>ref</b> 参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的 <b>ref</b> 参数更改为调用的结果。例如，可以为数组赋以 <b>null</b> 值，或将其初始化为另一个数组。例如：
</p>
<p></p>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[]&#160;arr)&#160;
<br/><img id="Codehighlighter1_44_110_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_44_110_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_44_110_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_44_110_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_44_110_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_44_110_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_44_110_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_44_110_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_44_110_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_44_110_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;arr&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;arr&#160;initialized&#160;to&#160;a&#160;different&#160;array</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span>
   </div>
</div>
<p>下面的两个示例说明 <b>out</b> 和 <b>ref</b> 在将数组传递给方法上的用法差异。
</p><h4 class="dtH4">示例 1</h4>
<p>在此例中，在调用方（<code class="ce">Main</code> 方法）中声明数组 <code class="ce">myArray</code>，并在 <code class="ce">FillArray</code> 方法中初始化此数组。然后将数组元素返回调用方并显示。
</p><h4 class="dtH4">
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;cs_array_ref_and_out.cs</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&#160;System;&#160;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;TestOut&#160;
<br/><img id="Codehighlighter1_57_543_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_57_543_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_57_543_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_57_543_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_57_543_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_57_543_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_57_543_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_57_543_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_57_543_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_57_543_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;FillArray(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[]&#160;myArray)&#160;
<br/><img id="Codehighlighter1_114_194_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_114_194_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_114_194_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_114_194_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_114_194_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_114_194_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_114_194_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_114_194_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_114_194_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_114_194_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Initialize&#160;the&#160;array:</span><span style="COLOR: #008000">
<br/><img id="Codehighlighter1_174_188_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_174_188_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_174_188_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_174_188_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_174_188_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_174_188_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_174_188_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_174_188_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;myArray&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]&#160;</span><span id="Codehighlighter1_174_188_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_174_188_Open_Text"><span style="COLOR: #000000">{</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&#160;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&#160;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&#160;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">,&#160;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;Main()&#160;
<br/><img id="Codehighlighter1_230_541_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_230_541_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_230_541_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_230_541_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_230_541_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_230_541_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_230_541_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_230_541_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_230_541_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_230_541_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[]&#160;myArray;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Initialization&#160;is&#160;not&#160;required
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Pass&#160;the&#160;array&#160;to&#160;the&#160;callee&#160;using&#160;out:</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;FillArray(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;myArray);
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Display&#160;the&#160;array&#160;elements:</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">Array&#160;elements&#160;are:</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">);
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&#160;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&#160;i&#160;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&#160;myArray.Length;&#160;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(myArray[i]);
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" />}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span>
   </div>
</div>输出</h4><pre class="code">Array elements are:
1
2
3
4
5</pre><h4 class="dtH4">示例 2</h4>
<p>在此例中，在调用方（<code class="ce">Main</code> 方法）中初始化数组 <code class="ce">myArray</code>，并通过使用 <b>ref</b> 参数将其传递给 <code class="ce">FillArray</code> 方法。在 <code class="ce">FillArray</code> 方法中更新某些数组元素。然后将数组元素返回调用方并显示。
</p><pre class="code">// cs_array_ref_and_out2.cs
using System; 
class TestRef 
{
   public static void FillArray(ref int[] arr) 
   {
      // Create the array on demand:
      if (arr == null)
         arr = new int[10];
      // Otherwise fill the array:
      arr[0] = 123;
      arr[4] = 1024;
   }

   static public void Main () 
   {
      // Initialize the array:
      int[] myArray = {1,2,3,4,5};  

      // Pass the array using ref:
      FillArray(ref myArray);

      // Display the updated array:
      Console.WriteLine(&quot;Array elements are:&quot;);
      for (int i = 0; i &lt; myArray.Length; i++) 
         Console.WriteLine(myArray[i]);
   }
}</pre><h4 class="dtH4">输出</h4><pre class="code">Array elements are:
123
2
3
4
1024</pre><img src ="http://www.cnblogs.com/linuxSeek/aggbug/129404.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44384/" target="_blank">淘宝网：跃升第二大机票平台</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>readonly与const修饰符到底有什么区别？</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119200.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Tue, 15 Mar 2005 08:52:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119200.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/119200.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/119200.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/119200.html</trackback:ping><description><![CDATA[<p>const和readonly修饰符都用于变量的声明，声明的变量都是只读的，不能被修改(常量)。但是readonly与const还是有区别的（摘自MSDN）：
<br/><strong>readonly</strong> 关键字与 <b>const</b> 关键字不同。<b>const</b> 字段只能在该字段的声明中初始化。<b>readonly</b> 字段可以在声明或构造函数中初始化。因此，根据所使用的构造函数，<b>readonly</b> 字段可能具有不同的值。另外，<b>const</b> 字段是编译时常数，而 <b>readonly</b> 字段可用于运行时常数，如下例所示： 
</p><blockquote class="dtBlock"><code class="ce">public static readonly uint l1 = (uint) DateTime.Now.Ticks;</code></blockquote><img src ="http://www.cnblogs.com/linuxSeek/aggbug/119200.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44386/" target="_blank">Palm 发布移动平台webOS和新款智能手机Palm Pre</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>out参数与ref参数。</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119180.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Tue, 15 Mar 2005 08:24:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119180.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/119180.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/03/15/119180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/119180.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/119180.html</trackback:ping><description><![CDATA[<p>使用out参数和ref参数时，在控制传递会调用方法时，在方法中对参数所做的修改都将反映在变量上。 
<br/>
<br/>以下内容均摘自MSDN： 
<br/>1.ref方法参数。 
<br/>
   </p>
   <p>方法参数上的 <b>ref</b> 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时，在方法中对参数所做的任何更改都将反映在该变量中。 
   </p>
   <p>若要使用 <b>ref</b> 参数，必须将参数作为 <b>ref</b> 参数显式传递到方法。<b>ref</b> 参数的值被传递到 <b>ref</b> 参数。 
   </p>
   <p>传递到 <b>ref</b> 参数的参数必须最先初始化。将此方法与 out 参数相比，后者的参数在传递到 <b>out</b> 参数之前不必显式初始化。 
   </p>
   <p>属性不是变量，不能作为 <b>ref</b> 参数传递。 
   </p>
   <p>如果两种方法的声明仅在它们对 <b>ref</b> 的使用方面不同，则将出现重载。但是，无法定义仅在 <b>ref</b> 和 <b>out</b> 方面不同的重载。例如，以下重载声明是有效的： 
   </p>
   <p>&#160;</p>
   <p></p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_15_103_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_103_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_15_103_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_103_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_15_103_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_103_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_15_103_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_103_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_15_103_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_15_103_Open_Text"><span style="COLOR: #000000">{ 
<br/><img id="Codehighlighter1_48_56_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_48_56_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_48_56_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_48_56_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_48_56_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_48_56_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_48_56_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_48_56_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_48_56_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_48_56_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img id="Codehighlighter1_93_101_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_93_101_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_93_101_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_93_101_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_93_101_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_93_101_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_93_101_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_93_101_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_93_101_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_93_101_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>
   <p>但以下重载声明是无效的：</p>
   <p>&#160;</p>
   <p></p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_15_107_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_107_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_15_107_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_107_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_15_107_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_107_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_15_107_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_107_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_15_107_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_15_107_Open_Text"><span style="COLOR: #000000">{ 
<br/><img id="Codehighlighter1_52_60_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_52_60_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_52_60_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_52_60_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_52_60_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_52_60_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_52_60_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_52_60_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_52_60_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_52_60_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img id="Codehighlighter1_97_105_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_105_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_97_105_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_105_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_97_105_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_105_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_97_105_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_105_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_97_105_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_97_105_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>
   <p>有关传递数组的信息，请参见使用 ref 和 out 传递数组。 </p><h4 class="dtH4">示例</h4>
   <p>&#160;</p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;cs_ref.cs</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&#160;System; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_49_832_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_49_832_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_49_832_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_49_832_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_832_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_49_832_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_49_832_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_49_832_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_49_832_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_49_832_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;TestRef(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&#160;i)&#160; 
<br/><img id="Codehighlighter1_97_179_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_179_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_97_179_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_179_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_97_179_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_179_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_97_179_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_179_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_97_179_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_97_179_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;The&#160;value&#160;of&#160;i&#160;will&#160;be&#160;changed&#160;in&#160;the&#160;calling&#160;method</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;TestNoRef(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&#160;i)&#160; 
<br/><img id="Codehighlighter1_226_310_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_226_310_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_226_310_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_226_310_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_226_310_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_226_310_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_226_310_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_226_310_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_226_310_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_226_310_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;The&#160;value&#160;of&#160;i&#160;will&#160;be&#160;unchanged&#160;in&#160;the&#160;calling&#160;method</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">c</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;This&#160;method&#160;passes&#160;a&#160;variable&#160;as&#160;a&#160;ref&#160;parameter;&#160;the&#160;value&#160;of&#160;the&#160; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;variable&#160;is&#160;changed&#160;after&#160;control&#160;passes&#160;back&#160;to&#160;this&#160;method. 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;The&#160;same&#160;variable&#160;is&#160;passed&#160;as&#160;a&#160;value&#160;parameter;&#160;the&#160;value&#160;of&#160;the 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;variable&#160;is&#160;unchanged&#160;after&#160;control&#160;is&#160;passed&#160;back&#160;to&#160;this&#160;method.</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;Main()&#160; 
<br/><img id="Codehighlighter1_634_830_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_634_830_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_634_830_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_634_830_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_634_830_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_634_830_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_634_830_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_634_830_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_634_830_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_634_830_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&#160;i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">a</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;variable&#160;must&#160;be&#160;initialized</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;TestRef(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;i);&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;the&#160;arg&#160;must&#160;be&#160;passed&#160;as&#160;ref</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(i); 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;TestNoRef(i); 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(i); 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>输出 
<br/>
   <p>&#160;b</p>
   <p>&#160;b 
<br/>
   </p>
   <p>
<br/>2.out方法参数。 
<br/>
<br/>
   </p>
   <p>方法参数上的 <b>out</b> 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时，在方法中对参数所做的任何更改都将反映在该变量中。 
   </p>
   <p>当希望方法返回多个值时，声明 <b>out</b> 方法非常有用。使用 <b>out</b> 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 <b>out</b> 参数。 
   </p>
   <p>若要使用 <b>out</b> 参数，必须将参数作为 <b>out</b> 参数显式传递到方法。<b>out</b> 参数的值不会传递到 <b>out</b> 参数。 
   </p>
   <p>不必初始化作为 <b>out</b> 参数传递的变量。然而，必须在方法返回之前为 <b>out</b> 参数赋值。 
   </p>
   <p>属性不是变量，不能作为 <b>out</b> 参数传递。 
   </p>
   <p>如果两个方法的声明仅在 <b>out</b> 的使用方面不同，则会发生重载。不过，无法定义仅在 <b>ref</b> 和 <b>out</b> 方面不同的重载。例如，以下重载声明是有效的： 
   </p>
   <p></p>
   <p></p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_15_103_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_103_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_15_103_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_103_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_15_103_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_103_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_15_103_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_103_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_15_103_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_15_103_Open_Text"><span style="COLOR: #000000">{ 
<br/><img id="Codehighlighter1_48_56_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_48_56_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_48_56_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_48_56_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_48_56_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_48_56_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_48_56_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_48_56_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_48_56_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_48_56_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img id="Codehighlighter1_93_101_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_93_101_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_93_101_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_93_101_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_93_101_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_93_101_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_93_101_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_93_101_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_93_101_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_93_101_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>
   <p>而以下重载声明是无效的：</p>
   <p></p>
   <p></p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_15_107_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_107_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_15_107_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_107_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_15_107_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_15_107_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_15_107_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_15_107_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_15_107_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_15_107_Open_Text"><span style="COLOR: #000000">{ 
<br/><img id="Codehighlighter1_52_60_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_52_60_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_52_60_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_52_60_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_52_60_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_52_60_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_52_60_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_52_60_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_52_60_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_52_60_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img id="Codehighlighter1_97_105_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_105_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_97_105_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_105_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_97_105_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_105_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_97_105_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_105_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;MyMethod(</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;i)&#160;</span><span id="Codehighlighter1_97_105_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_97_105_Open_Text"><span style="COLOR: #000000">{i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>
   <p>有关传递数组的信息，请参见使用 ref 和 out 传递数组。 
<br/>
<br/><span style="COLOR: red"><strong style="COLOR: #ff6600">示例： 
<br/></strong></span>
   </p>
   <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
       <div><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;cs_out.cs&#160;</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&#160;System; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;MyClass&#160; 
<br/><img id="Codehighlighter1_50_298_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_50_298_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_50_298_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_50_298_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_50_298_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_50_298_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_50_298_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_50_298_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_50_298_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_50_298_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&#160;TestOut(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&#160;i)&#160; 
<br/><img id="Codehighlighter1_97_134_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_134_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_97_134_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_134_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_97_134_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_97_134_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_97_134_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_97_134_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_97_134_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_97_134_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;i&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">&#39;</span><span style="COLOR: #000000">; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">; 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;Main()&#160; 
<br/><img id="Codehighlighter1_170_296_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_170_296_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_170_296_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_170_296_Closed_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_170_296_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_170_296_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_170_296_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_170_296_Open_Text.style.display=&#39;inline&#39;;" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_170_296_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif" /></span><span id="Codehighlighter1_170_296_Open_Text"><span style="COLOR: #000000">{ 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&#160;i;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;variable&#160;need&#160;not&#160;be&#160;initialized</span><span style="COLOR: #008000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(TestOut(</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&#160;i)); 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(i); 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span> 
       </div>
   </div>
   <p>
<br/><span style="COLOR: #ff6600"><strong>输出： 
<br/></strong></span>-1 
<br/>b 
<br/>
<br/>
   </p><img src ="http://www.cnblogs.com/linuxSeek/aggbug/119180.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44386/" target="_blank">Palm 发布移动平台webOS和新款智能手机Palm Pre</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>override修饰符</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113224.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Fri, 04 Mar 2005 13:03:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113224.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/113224.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/113224.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/113224.html</trackback:ping><description><![CDATA[<p>使用 <b>override</b> 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。 
</p>
<p>不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。</p>
<p>重写声明不能更改虚方法的可访问性。重写方法和虚方法必须具有相同的访问级修饰符。 </p>
<p>不能使用下列修饰符修改重写方法：</p>
<p><b>new&#160;&#160;&#160;static&#160;&#160;&#160;&#160;virtual&#160;&#160;&#160;abstract</b> 
</p>
<p>重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称，并且重写属性必须是虚拟的、抽象的或重写的。</p>
<p>有关访问基类成员的更多信息，请参见 7.5.8 基访问。 </p>
<p>有关重写方法的更多信息，请参见 10.5.4 重写方法。 </p><h4 class="dtH4">示例</h4>
<p>请参见 <b>virtual</b> 关键字的示例。 
</p>
<p>从具有重写方法的派生类中，仍然可以通过使用 <b>base</b> 关键字来访问同名的重写基方法。例如，如果有虚方法 <code class="ce">MyMethod()</code> 和派生类上的重写方法，就可以通过下列调用从派生类访问此虚方法： 
</p><pre class="code"><code class="ce">base.MyMethod()</code></pre>
<p>将此方法与使用范围解析运算符 (<code class="ce">::</code>) 和基类名的 C++ 方法进行比较，例如： 
</p><pre class="code"><code class="ce">My_Base_Class_Name::MyMethod()</code></pre><h4 class="dtH4">示例</h4>
<p>在该示例中，有一个基类 <code class="ce">Square</code> 和一个派生类 <code class="ce">Cube</code>。因为立方体的面积是六个正方形的面积之和，因此可以通过调用基类上的 <code class="ce">Area()</code> 方法来计算。 
</p>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;cs_override_keyword.cs 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Calling&#160;overriden&#160;methods&#160;from&#160;the&#160;base&#160;class</span><span style="COLOR: #008000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&#160;System; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;TestClass&#160; 
<br/><img id="Codehighlighter1_106_816_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_106_816_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_106_816_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_106_816_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_106_816_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_106_816_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_106_816_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_106_816_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_106_816_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_106_816_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;Square&#160; 
<br/><img id="Codehighlighter1_135_329_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_135_329_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_135_329_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_135_329_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_135_329_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_135_329_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_135_329_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_135_329_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_135_329_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_135_329_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Constructor:</span><span style="COLOR: #008000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;Square(</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x)&#160; 
<br/><img id="Codehighlighter1_220_249_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_220_249_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_220_249_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_220_249_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_220_249_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_220_249_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_220_249_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_220_249_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_220_249_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_220_249_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.x&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;x; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;Area()&#160; 
<br/><img id="Codehighlighter1_294_324_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_294_324_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_294_324_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_294_324_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_294_324_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_294_324_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_294_324_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_294_324_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_294_324_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_294_324_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;x</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">x;&#160; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;Cube:&#160;Square&#160; 
<br/><img id="Codehighlighter1_358_568_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_358_568_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_358_568_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_358_568_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_358_568_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_358_568_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_358_568_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_358_568_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_358_568_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_358_568_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Constructor:</span><span style="COLOR: #008000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;Cube(</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x):&#160;</span><span style="COLOR: #0000ff">base</span><span style="COLOR: #000000">(x)&#160; 
<br/><img id="Codehighlighter1_426_434_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_426_434_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_426_434_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_426_434_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_426_434_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_426_434_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_426_434_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_426_434_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_426_434_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_426_434_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Calling&#160;the&#160;Area&#160;base&#160;method:</span><span style="COLOR: #008000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;Area()&#160; 
<br/><img id="Codehighlighter1_519_563_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_519_563_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_519_563_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_519_563_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_519_563_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_519_563_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_519_563_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_519_563_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_519_563_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_519_563_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;(</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">base</span><span style="COLOR: #000000">.Area()));&#160; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" /> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;Main() 
<br/><img id="Codehighlighter1_603_814_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_603_814_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_603_814_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_603_814_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_603_814_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_603_814_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_603_814_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_603_814_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_603_814_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_603_814_Open_Text"><span style="COLOR: #000000">{ 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #000000">5.2</span><span style="COLOR: #000000">; 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Square&#160;s&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&#160;Square(x); 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Square&#160;c&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&#160;Cube(x); 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">Area&#160;of&#160;Square&#160;=&#160;{0:F2}</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">,&#160;s.Area()); 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;Console.WriteLine(</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">Area&#160;of&#160;Cube&#160;=&#160;{0:F2}</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">,&#160;c.Area()); 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" />}</span></span><span style="COLOR: #000000"> 
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span> 
   </div>
</div><h4 class="dtH4">输出</h4><pre class="code">Area of Square = 27.04
Area of Cube = 162.24</pre><img src ="http://www.cnblogs.com/linuxSeek/aggbug/113224.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/><a href="http://job.cnblogs.com/offer/302/" target="_blank">盛大招聘.Net开发工程师 </a><br/><a href="http://www.hjbook.net/product/4041/" target="_blank">经典好书：.NET框架程序设计（修订版）</a><br/>新闻：<a href="http://news.cnblogs.com/n/44381/" target="_blank">Google浏览器Chrome 2.0测试版发布</a><br/>导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://job.cnblogs.com/" target="_blank">招聘</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>virtual关键字详讲</title><link>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113215.html</link><dc:creator>linuxSeek</dc:creator><author>linuxSeek</author><pubDate>Fri, 04 Mar 2005 12:47:00 GMT</pubDate><guid>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113215.html</guid><wfw:comment>http://www.cnblogs.com/linuxSeek/comments/113215.html</wfw:comment><comments>http://www.cnblogs.com/linuxSeek/archive/2005/03/04/113215.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/linuxSeek/comments/commentRss/113215.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/linuxSeek/services/trackbacks/113215.html</trackback:ping><description><![CDATA[<p><b>virtual</b> 关键字用于修改方法或属性的声明，在这种情况下，方法或属性被称作虚拟成员。虚拟成员的实现可由派生类中的重写成员更改。 
</p>
<p>调用虚方法时，将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员，如果没有派生类重写该成员，则它可能是原始成员。（有关运行时类型和大部分派生实现的更多信息，请参见 <mshelp:link keywords="vclrfcsharpspec_10_5_3">10.5.3 虚拟方法</mshelp:link>。） 
</p>
<p>默认情况下，方法是非虚拟的。不能重写非虚方法。</p>
<p>不能将 <b>virtual</b> 修饰符与以下修饰符一起使用： 
</p>
<p><b>static</b>&#160;&#160;&#160;<b>abstract</b>&#160;&#160;&#160;<b>override</b> 
</p>
<p>除了声明和调用语法不同外，虚拟属性的行为与抽象方法一样。 </p>
<ul type="disc">
   <li>在静态属性上使用 <b>virtual</b> 修饰符是错误的。 
   </li>
   <li>通过包括使用 <b>override</b> 修饰符的属性声明，可在派生类中重写虚拟继承属性。 
   </li>
</ul>
<p>有关虚方法的更多信息，请参见 <mshelp:link keywords="vclrfcsharpspec_10_5_3">10.5.3 虚拟方法</mshelp:link>。 
</p><h4 class="dtH4">示例</h4>
<p>在该示例中，<code class="ce">Dimensions</code> 类包含 <code class="ce">x</code> 和 <code class="ce">y </code>两个坐标和 <code class="ce">Area()</code> 虚方法。不同的形状类，如 <code class="ce">Circle</code>、<code class="ce">Cylinder</code> 和 <code class="ce">Sphere</code> 继承 <code class="ce">Dimensions</code> 类，并为每个图形计算表面积。每个派生类都有各自的 <code class="ce">Area()</code> 重写实现。根据与此方法关联的对象，通过调用正确的 <code class="ce">Area()</code> 实现，该程序为每个图形计算并显示正确的面积。
<br/>&#160;
</p>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;cs_virtual_keyword.cs
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;Virtual&#160;and&#160;override</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&#160;System;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" width="11" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;TestClass&#160;
<br/><img id="Codehighlighter1_80_1424_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_80_1424_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_80_1424_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_80_1424_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_80_1424_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_80_1424_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_80_1424_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_80_1424_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_80_1424_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_80_1424_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;Dimensions&#160;
<br/><img id="Codehighlighter1_113_408_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_113_408_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_113_408_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_113_408_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_113_408_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_113_408_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_113_408_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_113_408_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;</span><span id="Codehighlighter1_113_408_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_113_408_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;pi&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;Math.PI;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x,&#160;y;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;Dimensions()&#160;
<br/><img id="Codehighlighter1_217_225_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_217_225_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_217_225_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_217_225_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_217_225_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_217_225_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_217_225_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_217_225_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_217_225_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_217_225_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;Dimensions&#160;(</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;x,&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;y)&#160;
<br/><img id="Codehighlighter1_279_329_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_279_329_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_279_329_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_279_329_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_279_329_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_279_329_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_279_329_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_279_329_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_279_329_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_279_329_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.x&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;x;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.y&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;y;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&#160;Area()&#160;
<br/><img id="Codehighlighter1_374_403_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_374_403_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_374_403_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_374_403_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_374_403_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_374_403_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_374_403_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_374_403_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_374_403_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/images/dot.gif" width="15" /></span><span id="Codehighlighter1_374_403_Open_Text"><span style="COLOR: #000000">{
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;x</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">y;
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />
<br/><img height="16" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;Circle:&#160;Dimensions&#160;
<br/><img id="Codehighlighter1_450_598_Open_Image" onclick="this.style.di