将int转换为字符串与C#中的ToString()方法有什么区别?
将Int转换为字符串和ToString()方法有什么区别?
例如 :-
int MyInt = 10; label1.Text = (string)MyInt; // This Doesn't Work label1.Text = MyInt.ToString(); // but this does.
好吧, ToString()
只是一个返回字符串的方法调用。 它在object
定义,因此调用任何东西(除了空引用)总是有效的。
演员可以做以下四件事之一:
在这种情况下,您要求编译器发出代码以从int
转换为string
。 以上选项均不适用,因此您会收到编译时错误。
不同之处在于,使用强制转换,您要求编译器假设int实际上是一个字符串,但事实并非如此。
使用ToString(),你要求int的字符串表示,实际上是一个字符串:)
嗯,ToString()正在调用一个返回整数字符串表示的方法。
当你强制转换时,你没有返回一个表示,你说你想引用同一个对象(在这种情况下,值类型),但是你想引用它作为一个不同的类型。
如果您要转换的类型(目标类型)与要转换的对象的类型相同或目标类型是转换对象的超类或接口,则转换将成功。
实际上,可以在转换中进行转换,提供源或目标类型声明隐式或显式转换,但Int32类型不会对String目标类型执行此操作。
.ToString()方法是在System.Object类型(从中派生所有.NET类型)上实现的方法,可以在特定派生类型上重写。
因此,“int”类型有自己的.ToString()方法,它知道所有关于int的内容,以及如何将它们转换为字符串表示。
使用(string)myint显式转换,您要求编译器强制转换/转换一种类型到另一种类型(在这种情况下,将int转换为字符串)。 它失败了,因为编译器说字符串和int是不兼容的类型。
因此,显式转换失败,因为编译器说int 不是字符串,但.ToString()调用成功,因为int类型表示它的值可以表示为字符串,并且这样做!
ToString()
方法是编程中最有用的方法之一,许多其他语言(如Java)具有在Object
级别实现的完全相同的方法。
您可以定义自己的,C#中的签名必须始终如下:
public override string ToString()
这意味着此方法将覆盖Object-class中的一个define并返回一个字符串。 在里面,你以你想要的方式操纵你的字符串,然后返回结果。
此外,您可以在该整数上使用ToString的具体原因是因为在C#中,整数是Struct Int32
所有实例。
看作Int32
处于类的同一级别,它可以有自己的方法,其中一个是ToString()。
还有一件事情永远不会使用.ToString()如果您认为该对象可能为null或您的应用程序将是例如:
//模拟可能发生的问题
object obj = null; obj.ToString();
上述就是C#学习教程:将int转换为字符串与C#中的ToString()方法有什么区别?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/949244.html