黑马程序员技术交流社区

标题: ToString 的作用是什么? [打印本页]

作者: 葛杨杨    时间: 2013-5-30 07:56
标题: ToString 的作用是什么?
本帖最后由 葛杨杨 于 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. }
复制代码

作者: 向德伟    时间: 2013-5-30 08:26
在你例子面ToString()就是把数字转换为字符串.
Console.WriteLine()这个方法里面有很多重载,可以是字符串(string),可以是数字(int)类型的.
你把数字转换为字符串,比如  5  ToString()后是"5" 输出的效果是一样的,但数据类型已经变啦.

楼主加油!
作者: 迟强    时间: 2013-5-30 08:42
代码中tostring(); 是把int类型转换成了string类型
而输出的结果都是5 但是类型已经不同了。
如果你把要输出的M2分别赋值给一个int类型的变量和一个string类型的变量 你就看出其中的不同
作者: SOAR    时间: 2013-5-30 09:44
你可以看看源码。
作者: 陈行    时间: 2013-5-30 10:23
楼主要学会多用msdn的帮助  来更好的自学  先思考后提问更有效  加油
作者: 李奔    时间: 2013-5-30 11:14
Console.WriteLine(M2.ToString()); 代表把M2转换成字符串后再输出,注意此时M2的数据类型变为字符串;
而 Console.WriteLine(M2);代表直接输出整数M2;
由于Console.WriteLine()可以输出任意类型的数据,所以上面的结果相同。
而XX.ToString()是把XX转换成字符串类型的数据。
作者: 袁梦希    时间: 2013-5-30 20:21
大家加油   以后有事情   或者没加分 给我留言或者看我的个性签名
作者: 关关雎鸠    时间: 2013-5-30 20:58
这里的Console.WriteLine()功能很强大的,几乎什么都可以接受的。你传入的是int、string、double神马的,它就跟你找打对应的方法(重载了),实在找不到就会用父类Object了,用F12进去看看就知道了。
作者: Sofoul    时间: 2013-5-30 22:42
toString()是把int类型的转成字符串,927.而去掉toString()的int类型的整数。输出结果没啥两样,就是类型不同了。你再把m1换成char试试效果就出来了
作者: a724228803    时间: 2013-5-31 12:21
任何类型后边都可以加上.ToString()方法。将数据转换成string类型
作者: a724228803    时间: 2013-5-31 12:30
亲,你好,
你说问题不是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) 使用指定的格式信息,将指定的对象和可变长度参数列表(后跟当前行终止符)的文本表示形式写入标准输出流。

作者: 王盛    时间: 2013-5-31 16:17
其实不加 tostring();是完全可以的,因为输出到控制台的时候,VS会自动调用sostring();来将内容转换为字符串类型,加上tostring ();这个方法,可以设置文本格式  比如:时间就可以toString("yyyy-MM-dd hh:mm:ss")(如果不加tostring()默认系统会默认调用  tostring()无参的构造函数。。。){:soso_e100:},说白了,也就是可以自己手动来定义要输出的格式~!懂了吧~!
作者: 李奔    时间: 2013-6-1 09:06
袁梦希 发表于 2013-5-30 20:21
大家加油   以后有事情   或者没加分 给我留言或者看我的个性签名

视频认证,QQ绑定还给加分吗?
为什么我的一直都没有加,谢谢!




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