黑马程序员技术交流社区

标题: 看串代码 [打印本页]

作者: 许万里    时间: 2013-2-25 23:30
标题: 看串代码
int re;
            string s = "1234a";

            if (MyTryParse(s, out re))
            {

                Console.WriteLine("转换成功");
            }
            else
            {
                Console.WriteLine("转换失败");
            
            }
        

        }
        public static bool MyTryParse( string b,out int result)
        {
            
         
            try
            {
                result = Convert.ToInt32(b);
              
                return true;


            }
            catch
            {
                result = 0;
                return false;
            
            }
           
        
        }








    if (MyTryParse(s, out re))
这串 是不是省略了一些内容     MyTryParse(s, out re);   没这句 也可以 转参 接收返回吗? 有点不解

作者: 康晓璞    时间: 2013-2-26 00:14
这个MyTryParse(s, out re)方法最主要的意思是为了说明输出参数out的用法。
先说一下out输出参数:
(1):必须在方法声明和方法调用中都使用修饰符。
(2):实参必须是变量,不能使其他的表达式类型。
(3):在方法内部,输出参数在被读取之前必须被赋值。
(4):每个输出参数,在方法返回之前必须被赋值。
在本例MyParse中,尝试将字符串s转换成等效的32位有符号整数,
如果转换成功,则将其成功的与其等效的32为有符号整数赋值给re,并返回true,
如果转换失败,则f赋值re为0,并返回false.
作者: 李景荣    时间: 2013-2-26 00:21
没有省略啊
MyTryParse这个方法有两个参数s和re;两个返回值,一个是通过out返回一个int类型,一个是通过return返回一个bool类型
MyTryParse(s, out re)它的返回值就是通过return返回的bool类型啊,可以看成MyTryParse(s, out re)这个表达式的值就是true或false
当然用return返回值 可以定义一个bool类型来接受它
bool result=MyTryParse(s, out re);
作者: dbqwaii    时间: 2013-2-26 09:46
没省略 通过out返回一个int类型  然后然后在方法中再通过return再返回一个bool类型
因为MyTryParse(s, out re)表达式是bool类型,所以就是true 或者false
作者: 许万里    时间: 2013-2-26 11:23
李景荣 发表于 2013-2-26 00:21
没有省略啊
MyTryParse这个方法有两个参数s和re;两个返回值,一个是通过out返回一个int类型,一个是通过re ...

怎么传入的值 呀    也没有定义接收  
作者: 李景荣    时间: 2013-2-26 11:29
许万里 发表于 2013-2-26 11:23
怎么传入的值 呀    也没有定义接收

方法后面不是要()括号嘛,括号里就是传入的值,可以不定义接受啊,整个方法的值就是方法的方法的返回值




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