使用此代码在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])按预期工作,但其他行不能。 欢迎您提出意见。
答案 0 :(得分:4)
Debug.WriteLine(string,string) method call is different from
Debug.WriteLine(string,object[])
这可能是第一个WriteLine语句工作的原因,而其余的不是,因为第二个参数可能是一个字符串。
请查看documentation此处
答案 1 :(得分:1)
您是否尝试过使用明确的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()
方法的不正确方法调用的问题(即期望数组或对象并且只是接收字符串,这会触发错误的功能)。