黑马程序员技术交流社区
标题:
tryparse()的问题
[打印本页]
作者:
乔利柱
时间:
2012-10-21 14:50
标题:
tryparse()的问题
本帖最后由 乔利柱 于 2012-10-22 09:54 编辑
string s=123aaa;
int re;
int. Tryparse(s.out re);
这个括号里的内容是什么意思?
作者:
许庭洲
时间:
2012-10-21 20:24
1.int.TryParse 不会产生异常,转换成功返回 true,转换失败返回 false;
2.int.TryParse(s. out re),其中的re应该用已经定义过的int类型对象,s是要转换成int类型的对象。
作者:
汪书凯
时间:
2012-10-21 21:34
作用:类型转换,简单的理解为:尝试(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,可以换转类型,与此同学判断它是否为指定类型。
作者:
丁艳姣
时间:
2012-10-21 21:48
我建议速度的看一下入学基础视频里面有个39outref视频,你赶快看看
作者:
黑马杨锦喜
时间:
2012-10-21 22:25
int. Tryparse(s.out re);里面应该是(s, out re)吧?
首先是判断s是否为数字类型,若是就转换成功返回true,得到所需的数字,否则false
然后out引入的参数在返回前至少赋值一次,否则编译器将提示:使用了未赋值的out参数;
C#中的ref和out提供了值类型按引用进行传递的解决方案,现在传递的是参数的地址而不是参数本身
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2