社区
C#
帖子详情
三种类型转换方式怎样区别
Microtigers
2008-12-23 11:24:05
(string)i
convert.tostring(i);
i.tostring();
怎么区别这三种转换,
哪种情况用哪种啊!
什么情况下可以通用.
...全文
117
10
打赏
收藏
三种类型转换方式怎样区别
(string)i convert.tostring(i); i.tostring(); 怎么区别这三种转换, 哪种情况用哪种啊! 什么情况下可以通用.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csdm55
2008-12-24
打赏
举报
回复
具体情况 具体分析 还是convert.tostring(i) 通用
接着i.tostring()
king19840811
2008-12-24
打赏
举报
回复
(string)i 强制转换效率最高。直接生成IL代码
convert.tostring(i); 安全转换,即以checked方式执行转换
i.tostring(); 效率最差的一种,需要装箱。
详细请参见框架设计第二版clr via 第11章第一节
zhu4139365
2008-12-23
打赏
举报
回复
[Quote=引用 1 楼 wonture 的回复:]
(string)i 是强制类型转化,并不是所有类型的东西都没强制类型转化成字符串。
convert.tostring(i);这种方法好,支持的对象可以看提示。绝大部分的类型都可以这样转换成字符串。
i.tostring();i对象如果有tostring()方法的话都可以用。
[/Quote]up
dayizhixiaotutu
2008-12-23
打赏
举报
回复
顶顶
cheng_er
2008-12-23
打赏
举报
回复
还真不清楚
不过C#里面不建议用这种弱数据类型的强制转换吧(string)i,这种做法是传承了C++里面的
建议用方法转换,不过剩余两种,可不知道区别了
wonture
2008-12-23
打赏
举报
回复
(string)i 是强制类型转化,并不是所有类型的东西都没强制类型转化成字符串。
convert.tostring(i);这种方法好,支持的对象可以看提示。绝大部分的类型都可以这样转换成字符串。
i.tostring();i对象如果有tostring()方法的话都可以用。
koukoujiayi
2008-12-23
打赏
举报
回复
第一种和第二种(string)i ;convert.tostring(i);
从理论上来说是一种装箱拆箱过程,
将值类型转换为引用类型,就是装箱过程,反之就是拆箱过程,
第三种i.tostring(); 仅将值类型格式转为字符型,没有装箱过程;
总结:有装箱拆箱过程的效率肯定要比没有装箱拆箱的要差!!
也就是说第一种和第二种理论上来说,效率要比第三种差!!
bulong0721
2008-12-23
打赏
举报
回复
(string)i有2中情况使用到:
1:object obj = "test string";
string str = (string)obj;
2:
public class Class1
{
public static explicit operator string(Class1 a)
{
return "test string";
}
}
Class1 cls1 = new Class1();
string str = (string)cls1;
Convert.ToString(i)是调用Convert类的实现,优点i可以为null,返回string.Empty
i.ToString() 调用object或(i)类的ToString()方法。i不能为null
vickjiang
2008-12-23
打赏
举报
回复
个人认为:
(string)i 是将本身是String类型的变量暂时改变了类型(例如被object包装)的还原方式
convert.tostring(i); 是强制转换
i.tostring(); 是将i,不管什么类型用文本表示出来
king19840811
2008-12-23
打赏
举报
回复
convert.tostring(i);感觉这个更适用其它类型的转换 string类型的一般还是用tostring()
C++ 四种
类型转换
众所周知C++关于
类型转换
引入了四种
方式
: 1、static_cast 2、const_cast 3、dynamic_cast 4、reinterpret_cast 1、为什么要引入这几种
类型转换
,它与C语言中的强制
类型转换
有什么
区别
? 2、这四种
类型转换
分别应用在什么场景? 我们都知道C++完全兼容C语言,C语言的转换
方式
很简单,可以在任意类型之间转换,但这也恰恰是缺点,因为极其不安全,可能不经意间将指向const对象的指针转换成非const对象的指针,可能将基类对象指针转成了派生类对象的指针,这种转换很
三种
强制
类型转换
@[T在C#中,我们可以看到
三种
强制
类型转换
,比如强制转换成有符号32位整型,可以找到下面
三种
方式
: ① (int)() ②Convert.ToInt32() ③int.Parse()
三种
转变在有些数据时可以通用,但是用法上仍然有很大的
区别
(int)表示使用显式强制转换,是一种
类型转换
。当我们从 int 类型到 long、float、double ...
强制
类型转换
和隐式类型传换是什么?他们的
区别
又是什么?
然而,隐式
类型转换
可能会导致一些问题,例如,当一个值被隐式地转换为不兼容的类型时可能会导致意外的结果。此外,强制
类型转换
还可以用于将值转换为不可变的类型(如字符串或数字),以确保值的类型不会在后续的代码中发生改变。隐式
类型转换
是一种自动的
类型转换
,编译器会自动进行
类型转换
而无需程序员显式地指定。在 JavaScript 中,隐式
类型转换
通常发生在表达式中涉及不同类型的值时,例如,当一个数字与一个字符串进行加法运算时,JavaScript 会将数字转换为字符串,然后进行字符串拼接操作。
C语言【隐式
类型转换
】和【显式
类型转换
】
C语言是一种强类型语言,当使用一种类型代替另外一种类型进行操作时或者存在两个不同类型的对象进行操作时,首先就得进行类型的转换然后再说其他。而
类型转换
的
方式
一般可分为隐式
类型转换
(也称:自动
类型转换
)和显示
类型转换
(也称:强制
类型转换
),两者有着本质上的
区别
。隐式
类型转换
是由编译器自动进行的,不需要人为的干预,而且我们也观察不到类型是如何进行转换的,所以被称为:“ 隐式 ”。而显式
类型转换
是由程序员明确指定的,所以才被称为:“ 强制
类型转换
”。
C语言中的
类型转换
有哪些
方式
?
C语言中的
类型转换
是将一个数据类型的值转换为另一个数据类型的值的过程,允许在不同数据类型之间进行操作和赋值。
类型转换
有两种
方式
:隐式
类型转换
和显式
类型转换
。隐式
类型转换
是编译器自动执行的,用于确保表达式的一致性和可执行性。它通常用于保持代码的一致性和可读性,但需要程序员小心处理,以避免数据丢失或不一致。显式
类型转换
是由程序员明确指定的,用于解决编译器警告或明确类型要求。它提供了更精确的控制,但需要谨慎使用,以确保
类型转换
是安全的。选择适当的
类型转换
方式
对于编写正确、可读且可维护的代码至关重要。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章