<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="C#关键字out和ref区别" id="card1">
<p> 游客</p><p>
标题:C#关键字out和ref区别<br/>
正文:<br/>
ref和out都是C#中的关键字，所实现的功能也差不多，都是指定一个参数按照引用传递。对于编译后的程序而言，它们之间没有任何区别，也就是说它们只有语法区别。总结起来，他们有如下语法区别：1、ref传进去的参数必须在调用前初始化，out不必，即：int i;SomeMethod( ref i );//语法错误SomeMethod( out i );//通过2、ref传进去的参数在函数内部可以直接使用，而out不可：public void SomeMethod(ref int i){   int j=i;//通过   //...}public void SomeMethod(out int i){   int j=i;//语法错误}3、ref传进去的参数在函数内部可以不被修改，但out必须在离开函数体前进行赋值。总结：应该说，系统对ref的限制是更少一些的。out虽然不要求在调用前一定要初始化，但是其值在函数内部是不可见的，也就是不能使用通过out传进来的值，并且一定要赋一个值。也就是说函数承担初始化这个变量的责任。ref是传递参数的地址，out是返回值使用ref前必须对变量赋值，out不用  <br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=251&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=251&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=251&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=251">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=251">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>