String.Format适用于Debug.WriteLine,如果变量不是字符串类型:
int myNumber = 1;
Debug.WriteLine("Put number here: {0}", myNumber);
使用非字符串更正输出
但如果变量是字符串:
string myString = "ShouldWork";
Debug.WriteLine("Put text here: {0}", myString);
字符串输出错误
答案 0 :(得分:18)
您将获得the wrong overload ...
你可以解决这个问题:
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);
答案 1 :(得分:2)
尝试:
Debug.WriteLine(string.Format("Put number here: {0}", 1));
另外,请确保Visual Studio中的“输出”选项(下拉菜单)设置为“调试...”在许多情况下默认情况下不启用。
答案 2 :(得分:2)
你无意中调用了一个不同的重载:
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));