首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debug.Print对Debug.WriteLine

Debug.Print对Debug.WriteLine
EN

Stack Overflow用户
提问于 2011-03-23 21:42:56
回答 4查看 15K关注 0票数 38

Debug.PrintDebug.WriteLine有什么区别?在MSDN中,两者的摘要是相同的:

将一行终止符后面的消息写入侦听器集合中的跟踪侦听器。

Debug.WriteLine有更多的重载。我看不出为什么要用Debug.Print而不是Debug.WriteLine

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-23 21:56:30

它们都做同样的事情,但有趣的是,Debug.Print只接受一个字符串,而Debug.WriteLine将接受一个对象,该对象最终调用对象的ToString方法。

反光镜:

代码语言:javascript
复制
[Conditional("DEBUG")]
public static void Print(string message){
    TraceInternal.WriteLine(message);
}

[Conditional("DEBUG")]
public static void WriteLine(string message){
    TraceInternal.WriteLine(message);
}

[Conditional("DEBUG")]
public static void WriteLine(object value)
{
    TraceInternal.WriteLine(value);
}

我敢打赌,Debug.Print是Visual的一部分。

编辑:来自Tracing VB.NET Windows Application教程的

Visual 2005中的

、Debug.Write、Debug.WriteIf、Debug.WriteLine和Debug.WriteLineIf方法已被早期版本的Visual中可用的Debug.Print方法所取代。

当然,听起来Debug.PrintC#之前的日子里就被控制住了。

票数 34
EN

Stack Overflow用户

发布于 2011-03-23 21:51:53

Debug.PrintDebug.WriteLine各自提供了一个带有单个字符串参数的重载。在内部,这些单参数方法以相同的方式工作,并调用此方法:

代码语言:javascript
复制
TraceInternal.WriteLine(message);

这两种方法的不同之处在于,Debug.Print提供了带有两个参数的重载:Debug.Print(String, Object[])Print的重载可以显示格式化的字符串。提供该功能的Debug.WriteLine没有过载,但您当然可以使用:

代码语言:javascript
复制
Debug.WriteLine(string.Format())

WriteLine是在.NET框架1.1中引入的,Print是在Framework2.0中引入的。在我看来,微软应该保留WriteLine作为方法的名称,并添加WriteLine(String, Object[])重载,而不是添加Print方法。

票数 8
EN

Stack Overflow用户

发布于 2011-03-23 22:18:20

他们不想冒险破坏.NET语言,因为它认为这两个重载都是不明确的。它们几乎是,WriteLine("foo")可以匹配WriteLine(string)和WriteLine(string,params object[])。C#对此有一条规则,但这是特定于该语言的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5411999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档