黑马程序员技术交流社区

标题: 方法中out的用法 [打印本页]

作者: 王超洋    时间: 2012-5-15 14:43
标题: 方法中out的用法
本帖最后由 王超洋 于 2012-5-15 21:33 编辑

有一些疑问大家帮忙解决一下:
static void Main(string[] args)
        {
            Console.WriteLine("请输入一个字符串");
            string s = Console.ReadLine();
            int re = 0;
            if(MyPass(s,out re) )
            {
                Console.WriteLine("转换成功"+re);
            }
            else
            {
                Console.WriteLine("转换失败");
            }
            Console.ReadKey();
        }
        public static bool MyPass(string s, out int result)
        {
            try
            {
                result = Convert.ToInt32(s);
                return true;
            }
            catch
            {
                result = 0;
                return false;
            }
        }
这道题的逻辑是不是这样:
用户输完之后就直接进入MyPass方法中的s,然后s转换之后赋给result,如果可以转换,result就赋给re,  if(MyPass(s,out re) )这个if里面的s是传参给MyPass方法,out re是接收MyPass方法里传出来的参数,而MyPass(s,out re)就是一个bool类型,接收true或者false,这是我自己对着视频顺了大半小时顺下来的理解,不知道有什么地方有问题没?或者里面有什么比较细的知识点,希望哪位同学有不同的理解写一下,我参考参考,谢谢!

作者: 郑玉赛    时间: 2012-5-15 15:13
MyPass(s,out re)不是一个bool类型,而是mayPass本身还会返回一个bool值,定义MyPass这个方法 public static bool MyPass的时候就注明了会返回一个bool的值。
作者: 王卫    时间: 2012-5-15 19:44
if 里面 应该是 BOOL值  所以,return true; 返回一个 bool值 类型 ----方法中 out 就是 传出 int类型的 参数 result , 用re 接收 这个 int类型的参数 result ,  但前面 也 需要 加上out关键字----这样 就可以 传出 两个值了 ---- 一般 方法 只能 有 一个 返回值 ----




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2