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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔利柱 中级黑马   /  2012-10-21 14:50  /  1407 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 乔利柱 于 2012-10-22 09:54 编辑

string s=123aaa;
int re;
int. Tryparse(s.out re);
    这个括号里的内容是什么意思?

评分

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

查看全部评分

4 个回复

倒序浏览
1.int.TryParse 不会产生异常,转换成功返回 true,转换失败返回 false;
2.int.TryParse(s. out  re),其中的re应该用已经定义过的int类型对象,s是要转换成int类型的对象。
回复 使用道具 举报
作用:类型转换,简单的理解为:尝试(try)转换指定类型,如果转换成功返回true,转换失败返回false

使用:

int i;

bool isNumber= int.TryParse("5",out i);//尝试把字符串转为int类型,并存在i中;转换成功时,返回true,否则转为:false

使用tryparse时,需要理解一点就是输出参数out。

这里简单带过,如:

static void Main(string[] args)

{   

  int num = 1;//给初始值也没用   

  MyOut(out num);   

  Console.WriteLine(num.ToString());//输入出   

  Console.ReadKey();

}

static void MyOut(out int i)

{  

  i = 2;//使用前必须赋值     i++;

}

执行的原理:

1.声明一个值类型num存于栈中。

2.调用MyOut时,在内存创建一个i,同样存于num所在的栈中

3.i=2时,栈中的数据改为2,同时num也变为2.

如果num为引用类型时,将声明一个堆区用于存数据。栈中存放着num与i的指向到堆中数据。

回过头来看下 int.TryParse("5",out i);

可以用反编译工具查看下内容,这里我就不具体查看了。 简单理解大致是:

1.判断“5”是否为数字类型。

2.如果“5”为数字类型反回true,并且把该值符给i所在的栈。

3.如果“5”不是数字类型返回false。

提示一下,转换的时候,不一定只有int类型。可以有DateTime等。

一般使用TryParse,可以换转类型,与此同学判断它是否为指定类型。

评分

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

查看全部评分

回复 使用道具 举报
我建议速度的看一下入学基础视频里面有个39outref视频,你赶快看看
回复 使用道具 举报
int. Tryparse(s.out re);里面应该是(s, out re)吧?
首先是判断s是否为数字类型,若是就转换成功返回true,得到所需的数字,否则false
然后out引入的参数在返回前至少赋值一次,否则编译器将提示:使用了未赋值的out参数;
C#中的ref和out提供了值类型按引用进行传递的解决方案,现在传递的是参数的地址而不是参数本身

评分

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

查看全部评分

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