A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘玺 中级黑马   /  2012-6-24 17:32  /  2697 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能举例说明一下out关键字的用法,谢了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

8 个回复

倒序浏览
out关键字是指定所给的参数是输出参数,参数在传递之前不需要显式初始化.
  1. static void Main(string[] args)
  2. {
  3.       int value;
  4.       Method(out value);
  5.       Console.WriteLine(value);
  6. }
  7. static void Method(out int i)
  8. {
  9.       i = 44;//参数必须在方法内赋初始值
  10. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
  1. string str = textBox1.Text;
  2.             int i;
  3.             if(!int.TryParse(str,out i))
  4.             {
  5.                 MessageBox.Show("第一个数不是合法的整数");
  6.                 return;
  7.             }
复制代码
WinForm中 这样不给 i 赋初始值,也没错吧?
回复 使用道具 举报
刘玺 发表于 2012-6-24 18:30
WinForm中 这样不给 i 赋初始值,也没错吧?

不会报错!!
回复 使用道具 举报
刘玺 发表于 2012-6-24 18:30
WinForm中 这样不给 i 赋初始值,也没错吧?

int.TryParse(str,out i) 就算给 i 赋了值。
回复 使用道具 举报
  帮助有说
out 关键字会导致参数通过引用来传递。 这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。 若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字 如
  1. class OutExample
  2. {
  3.     static void Method(out int i)
  4.     {
  5.         i = 44;
  6.     }
  7.     static void Main()
  8.     {
  9.         int value;
  10.         Method(out value);
  11.         // value is now 44
  12.     }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。  

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。  

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

对于out关键字的用法已经很清楚了,必须在方法中对其完成初始化,在方法的参数和执行方法时要加out关键字,out适合用在有需要return多个返回值的地方。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
举个out必须在方法中对其完成初始化的例子:
static void Main(string[] args)
{
  int i ;
  FF( out i);
  Console.WriteLine(i);
}
static void FF(out int i)//在方法FF中对变量i使用out引用
{
  i=10; //如果没有这个赋值,系统将会报错的
  i = i + 1;
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
out的值是在被调用的方法里赋值,而不是在调用者里赋值

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马