c# - C#值类型和字符串

原文 标签 c# tostring value-type

这是一个家庭作业问题,这就是为什么它可能有点奇怪(如果标题不是很好,也要道歉)
假设v1是重新定义tostring的x类型的值类型,那么使用console.writeline(v1)和console.writeline(v1.tostring())有什么区别吗?

最佳答案

最简单的回答是“是的,有区别”。很明显,重要的是你知道这有什么不同。我不会告诉你,但我会告诉你如何调查…
编写一个简短的程序,其中包含所述的自定义值类型,并且在Console.WriteLine(v1)方法中同时包含Console.WriteLine(v1.ToString())Main
编译程序
运行ildasm(或在il模式下运行reflector)并查看方法调用之间的差异
在每种情况下调用哪个方法重载?
在每种情况下,值会发生什么变化?
你可能想考虑的问题,可能会给你额外的学分:
如果使用自定义类而不是结构,有什么区别吗?
你能想出什么方法来设计Console.WriteLine来消除你注意到的任何效率低下的问题吗?

相关文章:

c# - 使用闭包来跟踪变量:好主意还是肮脏的把戏?

c# - C# - 子字符串:索引和长度必须引用字符串中的位置

c# - 是否建议在静态类本身中包含扩展方法?

c# - 如何在后面的代码中设置“ {Binding}”?

c# - 使用row.Field <T>(col)和基于行/列索引获取单元格值之间的差异

java - 如何使用toString()或print()等同时显示两个输出?

c# - 在default.aspx中调用jquery

java - scala中toString和mkString有什么区别?

c# - 默认情况下通过引用传递不可变值类型

c# - 在C#中,使用值类型与引用类型