繁体   English   中英

Debug.WriteLine输出不正确(“将文本放在此处:{0}”,myString)

[英]incorrect output from Debug.WriteLine(“Put text here: {0}”, myString)

如果变量不是字符串类型,String.Format适用于Debug.WriteLine:

int myNumber = 1;
Debug.WriteLine("Put number here: {0}", myNumber);

使用非字符串更正输出

  • 把号码放在这里:1

但如果变量是字符串:

string myString = "ShouldWork";
Debug.WriteLine("Put text here: {0}", myString);

字符串输出不正确

  • 应该工作:把文字放在这里:{0}

为什么?

得错了重载 ......

你可以解决这个问题:

Debug.WriteLine("Put text here: {0}", myString, null/*dummy*/);

一个好的包装将是

public static void DebugFormat(string fmt, params object[] p)
{
     Debug.WriteLine(fmt, p); // this will select the right overload 
                              // ... due to typeof(p)==object[]
}

// ...
DebugFormat("Put text here: {0}", myString, null/*dummy*/);
int myNumber = 1;
DebugFormat("Put number here: {0}", myNumber);

尝试:

Debug.WriteLine(string.Format("Put number here: {0}", 1));

此外,请确保Visual Studio中的“输出”选项(下拉菜单)设置为“调试...”在许多情况下默认情况下不启用。

你无意中调用了一个不同的重载:

http://msdn.microsoft.com/en-us/library/1w33ay0x.aspx

对于所需的行为,您可以使用字符串连接:

Debug.WriteLine("Put text here: " + myString);

或者调用String.Format:

Debug.WriteLine(String.Format ("Put text here: {0}", myString));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM