【问题标题】:debug writeline has strange output调试 writeline 有奇怪的输出
【发布时间】:2016-04-04 14:58:44
【问题描述】:

在 VS-2012 Express for Web 中进行编码 -- VB.Net 使用此代码...

Diagnostics.Debug.WriteLine(vbTab + ".prpUID_REPORT      = [{0}]", .prpUID_REPORT)
Diagnostics.Debug.WriteLine(vbTab + ".prpRV_HeaderDSName = [{0}]", .prpRV_HeaderDSName)
Diagnostics.Debug.WriteLine(vbTab + ".prpRV_HeaderDSId   = [{0}]", .prpRV_HeaderDSId)
Diagnostics.Debug.WriteLine(vbTab + ".prpRV_ReportDSName = [{0}]", .prpRV_ReportDSName)
Diagnostics.Debug.WriteLine(vbTab + ".prpRV_ReportDSId   = [{0}]", .prpRV_ReportDSId)
Diagnostics.Debug.WriteLine(vbTab + ".prpRV_ReportPath   = [{0}]", .prpRV_ReportPath)

立即窗口中的结果:

   .prpUID_REPORT      = [22]
   dsetCustHeader:  .prpRV_HeaderDSName = [{0}]
   SDS_RptHeader:   .prpRV_HeaderDSId   = [{0}]
   dsetReportContentAll:    .prpRV_ReportDSName = [{0}]
   SDS_RptData:     .prpRV_ReportDSId   = [{0}]
   ssrsFleetCostSummary_FLA.rdlc:   .prpRV_ReportPath   = [{0}]

请注意,第一个调试行正确显示了文本 .prpUID_Report = [22]。但是,接下来的调试行显示“值”,然后是部分源代码行。替换为 {0} 似乎有问题。

关于可能导致此问题的任何线索?我认为调试源代码在语法上是正确的,因为第一行(= [22])按预期工作,但其他行没有。 欢迎您的 cmets。

【问题讨论】:

    标签: asp.net vb.net visual-studio-2012


    【解决方案1】:
      Debug.WriteLine(string,string) method call is different from 
      Debug.WriteLine(string,object[])
    

    这可能是为什么第一个 WriteLine 语句正在工作而其余的不是,因为第二个参数可能是一个字符串。

    请在此处查看documentation

    【讨论】:

    【解决方案2】:

    您是否尝试过使用明确的String.Format() 调用来查看是否有任何不同?

    Diagnostics.Debug.WriteLine(String.Format("{0} .prpUID_REPORT = [{1}]",vbTab, .prpUID_REPORT))
    Diagnostics.Debug.WriteLine(String.Format("{0} .prpRV_HeaderDSName = [{1}]",vbTab, .prpRV_HeaderDSName))
    ` Other code omitted for brevity `
    

    这可能只是 Debug.WriteLine() 方法的不正确方法调用的问题(即期望一个数组或一个对象而只接收一个字符串,这会触发错误的功能)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-13
      • 2014-06-15
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      相关资源
      最近更新 更多