加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么Microsoft重载方法Console.Write()和Console.WriteLine()

发布时间:2020-12-14 05:45:48 所属栏目:Windows 来源:网络整理
导读:为什么Microsoft重载方法Console.Write()和Console.WriteLine()?他们可以制作这样的方法 public void WriteLine(Object ob){ Console.WriteLine(ob.ToString());}public static void WriteLine(string value); 但他们做到了 public static void WriteLine(b
为什么Microsoft重载方法Console.Write()和Console.WriteLine()?他们可以制作这样的方法

public void WriteLine(Object ob)
{
   Console.WriteLine(ob.ToString());
}
public static void WriteLine(string value);

但他们做到了

public static void WriteLine(bool value);

    public static void WriteLine(float value);

    public static void WriteLine(int value);

    [CLSCompliant(false)]
    public static void WriteLine(uint value);

    public static void WriteLine(long value);

    [CLSCompliant(false)]
    public static void WriteLine(ulong value);

    public static void WriteLine(object value);

    public static void WriteLine(string value);

    public static void WriteLine(double value);

    public static void WriteLine(decimal value);

解决方法

长话短说,微软出于性能原因做了这件事.

基于对象的方法需要为具有值类型对象的每次调用Console创建一个丢弃的包装器对象.考虑一下你打电话会发生什么

Console.WriteLine(12345678);

首先,将12345678装入对象中.然后将对象传递给WriteLine.接下来,WriteLine在对象上调用ToString.最后,将字符串复制到输出中.

此时,来自装箱操作的对象和来自ToString的字符串变得有资格进行垃圾收集. Microsoft决定在每个调用中创建两个垃圾对象对于写入控制台这样的基本操作是不可接受的,因此它们提供了您列出的所有重载.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读