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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葛杨杨 中级黑马   /  2013-5-30 07:56  /  3023 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 葛杨杨 于 2013-6-1 09:10 编辑

下面两段代码, 一个有ToString, 一个没有, 输出结果一样, 那么ToSting的作用到底是什么?
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int M1 = 927;
  12.             int M2;

  13.             M2 = M1 + M1;

  14.             Console.WriteLine(M2.ToString());
  15.             Console.ReadKey();
  16.         }
  17.     }
  18. }
复制代码
下面这个是去掉ToString的代码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int M1 = 927;
  12.             int M2;

  13.             M2 = M1 + M1;

  14.             Console.WriteLine(M2);
  15.             Console.ReadKey();
  16.         }
  17.     }
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

12 个回复

倒序浏览
在你例子面ToString()就是把数字转换为字符串.
Console.WriteLine()这个方法里面有很多重载,可以是字符串(string),可以是数字(int)类型的.
你把数字转换为字符串,比如  5  ToString()后是"5" 输出的效果是一样的,但数据类型已经变啦.

楼主加油!

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
代码中tostring(); 是把int类型转换成了string类型
而输出的结果都是5 但是类型已经不同了。
如果你把要输出的M2分别赋值给一个int类型的变量和一个string类型的变量 你就看出其中的不同

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
你可以看看源码。
回复 使用道具 举报
楼主要学会多用msdn的帮助  来更好的自学  先思考后提问更有效  加油
回复 使用道具 举报
Console.WriteLine(M2.ToString()); 代表把M2转换成字符串后再输出,注意此时M2的数据类型变为字符串;
而 Console.WriteLine(M2);代表直接输出整数M2;
由于Console.WriteLine()可以输出任意类型的数据,所以上面的结果相同。
而XX.ToString()是把XX转换成字符串类型的数据。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
大家加油   以后有事情   或者没加分 给我留言或者看我的个性签名
回复 使用道具 举报
这里的Console.WriteLine()功能很强大的,几乎什么都可以接受的。你传入的是int、string、double神马的,它就跟你找打对应的方法(重载了),实在找不到就会用父类Object了,用F12进去看看就知道了。
回复 使用道具 举报
Sofoul 中级黑马 2013-5-30 22:42:29
9#
toString()是把int类型的转成字符串,927.而去掉toString()的int类型的整数。输出结果没啥两样,就是类型不同了。你再把m1换成char试试效果就出来了
回复 使用道具 举报
任何类型后边都可以加上.ToString()方法。将数据转换成string类型
回复 使用道具 举报
亲,你好,
你说问题不是ToString();方法的问题!!!
ToString:任何类型后边都可以加上.ToString()方法。将数据转换成string类型
你的问题关键在于 console.writeline();中参数类型不同!
这是因为console。writeLine() 的方法重载,可以参考MSDN中的详细信息

WriteLine() 将当前行终止符写入标准输出流。
WriteLine(Boolean) 将指定布尔值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Char) 将指定的 Unicode 字符值(后跟当前行终止符)写入标准输出流。
WriteLine(Char[]) 将指定的 Unicode 字符数组(后跟当前行终止符)写入标准输出流。
WriteLine(Decimal) <SPAN class=sentence id=mt6 jQuery18207144583998127112="28" data-guid="53b69c7027dd77e473f680aa253a87a3" data-source='Writes the text representation of the specified Decimal value, followed by the current line terminator, to the standard output stream.' xml:space="preserve">将指定的 Decimal 值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Double) 将指定的双精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Int32) 将指定的 32 位有符号整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(Int64) 将指定的 64 位有符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(Object) 将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(Single) 将指定的单精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String) 将指定的字符串值(后跟当前行终止符)写入标准输出流。
WriteLine(UInt32) 将指定的 32 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(UInt64) 将指定的 64 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。
WriteLine(String, Object) 使用指定的格式信息,将指定对象(后跟当前行终止符)的文本表示形式写入标准输出流。
WriteLine(String, Object[]) 使用指定的格式信息,将指定的对象数组(后跟当前行终止符)的文本表示形式写入标准输出流。
WriteLine(Char[], Int32, Int32) 将指定的 Unicode 字符子数组(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object) 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object, Object) 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。
WriteLine(String, Object, Object, Object, Object) 使用指定的格式信息,将指定的对象和可变长度参数列表(后跟当前行终止符)的文本表示形式写入标准输出流。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
其实不加 tostring();是完全可以的,因为输出到控制台的时候,VS会自动调用sostring();来将内容转换为字符串类型,加上tostring ();这个方法,可以设置文本格式  比如:时间就可以toString("yyyy-MM-dd hh:mm:ss")(如果不加tostring()默认系统会默认调用  tostring()无参的构造函数。。。){:soso_e100:},说白了,也就是可以自己手动来定义要输出的格式~!懂了吧~!

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
袁梦希 发表于 2013-5-30 20:21
大家加油   以后有事情   或者没加分 给我留言或者看我的个性签名

视频认证,QQ绑定还给加分吗?
为什么我的一直都没有加,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马