You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

int.Parse(e.CommandArgument.ToString())无输出?chooseID调试无显示求助

搞定Debug.WriteLine不输出chooseID值的问题

嘿,我一眼就看出问题啦——你误用了Debug.WriteLine的重载方法,导致chooseID的数值没被正确输出。

为啥会这样?

先看你代码里的这行:

System.Diagnostics.Debug.WriteLine("chooseID", chooseID);

这里调用的是格式化字符串重载:Debug.WriteLine(string format, params object[] args)。你把"chooseID"当成了描述文本,但这个重载里第一个参数是格式模板,而你的模板里没有占位符(比如{0}),所以第二个参数chooseID直接被忽略了,只会输出"chooseID"这几个字,完全不会显示变量的值。

反观你之前的那行代码:

System.Diagnostics.Debug.WriteLine("e.CommandArgument.ToString()", e.CommandArgument.ToString());

这行能正常输出值,是因为两个参数都是字符串,匹配的是Debug.WriteLine(string message, string category)重载,输出格式是"category: message",所以你才会看到类似e.CommandArgument.ToString(): 4的结果。

几种正确的写法

你可以选下面任意一种写法来输出chooseID的数值:

  • 推荐:用格式化字符串:给描述文本加上占位符,把变量值插进去,清晰直观:

    System.Diagnostics.Debug.WriteLine("chooseID: {0}", chooseID);
    

    这样会输出chooseID: 4(假设chooseID的值是4)。

  • 用类别重载(交换参数):如果你想保留「类别+值」的输出格式,要把变量放在第一个参数,类别文本放第二个:

    System.Diagnostics.Debug.WriteLine(chooseID, "chooseID");
    

    输出结果也是chooseID: 4。

  • 直接拼接字符串:把描述和变量值拼接成一个字符串传入:

    System.Diagnostics.Debug.WriteLine("chooseID: " + chooseID);
    

    这种写法也能正常输出,但格式化字符串的方式在输出多个变量时会更灵活。

要是你只想看变量值,甚至可以直接写:

System.Diagnostics.Debug.WriteLine(chooseID);

这样会直接输出4,没有前缀描述。

内容的提问来源于stack exchange,提问作者Hoàng Hiệp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:32:08