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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangaidongcumt 中级黑马   /  2013-6-12 11:08  /  2358 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangaidongcumt 于 2013-6-23 15:19 编辑

就是int.Parse("10");为什么int可以点出来方法~~~一直都不知道这是怎么回事,希望知道的可以给详细解释一下,
另外还有这个int.TryParse()方法该如何使用,我记得以前学过,但是现在又不知道怎么用了~~~谢谢大家O(∩_∩)O

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

18 个回复

倒序浏览
int为什么可以点处方法来?这没有什么好奇的吧,你邮件单击看看有什么神奇之处。

int.tryParse 应该是尝试着转换吧。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
int 应该是微软封装好的一个方法,方法可以打点调用。
int.TryParse() 可以转换特定的数据类型
           自己理解的,不知道对不对。
回复 使用道具 举报
ljh4282158 发表于 2013-6-12 11:15
int 应该是微软封装好的一个方法,方法可以打点调用。
int.TryParse() 可以转换特定的数据类型
            ...

第一个问题我知道是怎么回事了:因为int其实就是Int32,Int32是结构,结构中定义了方法,所以就可以点出来了!但是第二个问题有没有什么简单的代码可以示例一下~~
回复 使用道具 举报
甘斌斌 发表于 2013-6-12 11:11
int为什么可以点处方法来?这没有什么好奇的吧,你邮件单击看看有什么神奇之处。

int.tryParse 应该是尝试 ...

第一个问题我知道是怎么回事了:因为int其实就是Int32,Int32是结构,结构中定义了方法,所以就可以点出来了!但是第二个问题有没有什么简单的代码可以示例一下~~
回复 使用道具 举报
这里的 int 已经不是指数据类型,所有可以点出方法很正常啊,下面是int.TryParse()的用法:

static void Main(string[] args)
        {
            string value = "12";
            int intValue = 0;                   //将Value转换成int后输出的数

            bool result=int.TryParse(value,out intValue);             //得到一个bool值
            if (result)   //使用bool值
            {
                Console.WriteLine("可以转换成数字");                Console.WriteLine(intValue.ToString());   //输出得到的数
            }
            else
            {
                Console.WriteLine("不能转换成数字");
            }
            Console.ReadKey();
        }

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
彭康 中级黑马 2013-6-12 11:31:23
7#
本帖最后由 杞文明 于 2013-6-13 16:40 编辑

int 是一个结构体 叫 int32 下面是他的构造函数

回复 使用道具 举报
胡章诚 发表于 2013-6-12 11:30
这里的 int 已经不是指数据类型,所有可以点出方法很正常啊,下面是int.TryParse()的用法:

static void M ...

int在这不是数据类型?这句话你确定对?
回复 使用道具 举报
胡章诚 发表于 2013-6-12 11:30
这里的 int 已经不是指数据类型,所有可以点出方法很正常啊,下面是int.TryParse()的用法:

static void M ...

还有这个TryParse方法:是不是如果可以转换成功,就把要转换的值赋值给第二个参数,如果转换不成功,则还是intValue的值~
回复 使用道具 举报
一个简单小例子:
            Console.WriteLine("请输入字符串:");
            String str = Console.ReadLine();
            int a;
            //str是否为字符串型的整数,尝试转换一下
            if (int.TryParse(str, out a))
            {
                Console.WriteLine("{0}是整数",str);
            }
            else
            {
                Console.WriteLine("{0}不是整数",str);
            }
           Console.ReadKey();



评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
yangaidongcumt 发表于 2013-6-12 11:26
第一个问题我知道是怎么回事了:因为int其实就是Int32,Int32是结构,结构中定义了方法,所以就可以点出 ...

string s = Console.ReadLine();
            int a;
            int.TryParse(s, out a);   //转换失败的时候,或者转换的数字大于int 类型范围的时候,输出的数字会是 0 而不会报错
            Console.WriteLine(a);


      

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
yangaidongcumt 发表于 2013-6-12 11:32
int在这不是数据类型?这句话你确定对?

我是以我自己的思维方式去理解这个问题,可能不是实质,但是可以肯定,也许出处相同,但是这里的int的含义肯定不同于数据类型的int,
对,你说的是对的,入过可以成功转换,intVlue就重新赋值,否则不变
回复 使用道具 举报
胡章诚 发表于 2013-6-12 11:45
我是以我自己的思维方式去理解这个问题,可能不是实质,但是可以肯定,也许出处相同,但是这里的int的含 ...

嗯~~发现一个问题,给intValue赋值是没有意义的,如果转换不成功会输出0,我看了一下微软的解释是这样的,所以最好不好在外面赋值,赋值的话,失败还是0,对于点出方法:我理解是结构中包含了这个方法,所以可以点出来了~~~~
回复 使用道具 举报
ljh4282158 发表于 2013-6-12 11:38
string s = Console.ReadLine();
            int a;
            int.TryParse(s, out a);   //转换失 ...

嗯,谢谢你,了解了~~~~~
回复 使用道具 举报
李奔 发表于 2013-6-12 11:35
一个简单小例子:
            Console.WriteLine("请输入字符串:");
            String str = Console.R ...

Thanks~了解了O(∩_∩)O,一起加油去8期~~~

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 李晶晶 于 2013-6-12 12:02 编辑

int.Parse("10");转到定义,你会发现其实它是一个Int32结构体,其中parse是结构体的一个静态方法。因为在C#中,int是Int32的别名,编译器看起来它们是完全一致的,没有任何区别,所以int.parse()跟Int32.parse是等价的。
下面是int.TryParse()方法的用法:
static void Main(string[] args)
        {
            string s = "123";
            int number;//用来存储输出参数传递过来的值
            //int.TryParse(s, out number)有两个参数,
            //一个是需要转化的字符串
            //一个是转换成功后需要输出的值
            if (int.TryParse(s, out number))    //如果不能转换,方法将返回false,反之,则返回true。
            {
                Console.WriteLine("转换成功,值为:{0}",number);
            }
            else
            {
                Console.WriteLine("转换失败");
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
李晶晶 发表于 2013-6-12 12:00
int.Parse("10");转到定义,你会发现其实它是一个Int32结构体,其中parse是结构体的一个静态方法。因为在C# ...

谢谢你,我了解了~~~~主要是第一个问题困扰了我好久~~~~
回复 使用道具 举报
yangaidongcumt 发表于 2013-6-12 11:26
第一个问题我知道是怎么回事了:因为int其实就是Int32,Int32是结构,结构中定义了方法,所以就可以点出 ...

如果不加try就是转换,加了try就是尝试着转换!
回复 使用道具 举报
yangaidongcumt 发表于 2013-6-12 11:53
嗯~~发现一个问题,给intValue赋值是没有意义的,如果转换不成功会输出0,我看了一下微软的解释是这样的 ...

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