关于int重写的tostring()方法

littlecc2009 2010-03-05 01:16:12
int类型重写了object的tostring()方法,没有涉及装箱。我想请问重写成怎样了?
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzhilian2008 2010-03-05
  • 打赏
  • 举报
回复
装箱只存在于值类型到object的转换,不会发生在string类型上
SQL77 2010-03-05
  • 打赏
  • 举报
回复
引用 6 楼 vrhero 的回复:
嗯...楼主没错,就是要有打破沙锅问到底的精神...

查看CLR源码的方法有很多种,部分CLR源码是开源的可以去微软官网找...

http://referencesource.microsoft.com/netframework.aspx

另外由于托管代码实际是开放的,你可以直接用反编译工具查看源码...

至于那个FormatInt32...你应该注意到它是extern函数,也就是说它是非托管代码,是无法看到它的实现的...这也表示CLR底层是直接内存操作,涉及托管堆管理的秘密,大概未来若干年内都很难知道它们实现的细节,不过看函数签名猜也能猜出个大概...

学习
vrhero 2010-03-05
  • 打赏
  • 举报
回复
嗯...楼主没错,就是要有打破沙锅问到底的精神...

查看CLR源码的方法有很多种,部分CLR源码是开源的可以去微软官网找...

http://referencesource.microsoft.com/netframework.aspx

另外由于托管代码实际是开放的,你可以直接用反编译工具查看源码...

至于那个FormatInt32...你应该注意到它是extern函数,也就是说它是非托管代码,是无法看到它的实现的...这也表示CLR底层是直接内存操作,涉及托管堆管理的秘密,大概未来若干年内都很难知道它们实现的细节,不过看函数签名猜也能猜出个大概...
littlecc2009 2010-03-05
  • 打赏
  • 举报
回复
引用 4 楼 zhang_yugang 的回复:
lz你这就错了,人家给你回答问题了,还问人家从哪里找的。。。。

呃。。我不是那个意思。。我只是想知道他是怎么知道的。。因为以后遇见类似问题我也可以自己解决嘛。。
zhang_yugang 2010-03-05
  • 打赏
  • 举报
回复
lz你这就错了,人家给你回答问题了,还问人家从哪里找的。。。。
littlecc2009 2010-03-05
  • 打赏
  • 举报
回复
还有我想问问有FormatInt32这个函数的具体实现吗?
littlecc2009 2010-03-05
  • 打赏
  • 举报
回复
引用 1 楼 vrhero 的回复:
自己看源码...
C# codeinternalclass Number
{
[MethodImpl(MethodImplOptions.InternalCall)]publicstaticexternstring FormatInt32(int value,string format, NumberFormatInfo info);
}publicstruct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
{publicoverridestring ToString()
{return Number.FormatInt32(this,null, NumberFormatInfo.CurrentInfo);
}
}
楼主求知欲很强,很好学,值得鼓励...但是要讲究方法...

装箱只存在于值类型到object的转换,不会发生在string类型上...

请问这个代码是哪里找的呢??
vrhero 2010-03-05
  • 打赏
  • 举报
回复
自己看源码...

internal class Number
{
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern string FormatInt32(int value, string format, NumberFormatInfo info);
}
public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
{
public override string ToString()
{
return Number.FormatInt32(this, null, NumberFormatInfo.CurrentInfo);
}
}

楼主求知欲很强,很好学,值得鼓励...但是要讲究方法...

装箱只存在于值类型到object的转换,不会发生在string类型上...

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧