Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查返回值,但不将其指定给变量_C#_Visual Studio 2010_Debugging - Fatal编程技术网

C# 检查返回值,但不将其指定给变量

C# 检查返回值,但不将其指定给变量,c#,visual-studio-2010,debugging,C#,Visual Studio 2010,Debugging,我截取了以下代码: ... var tpc = new ThirtPartyClass(); tpc.ExecuteCommand(); tpc.ExecuteCommand(); ... ExecuteCommand()方法返回一个包含一些信息的int值。 对于调试,我想知道这个返回值。但我不想将结果赋给变量(var result=tpc.ExecuteCommand()) VisualStudio 2010在调试期间是否有可能检查此返回值而不将其分配给临时变量 提前感谢您的建议 编辑:最

我截取了以下代码:

...
var tpc = new ThirtPartyClass();

tpc.ExecuteCommand();
tpc.ExecuteCommand();
...
ExecuteCommand()方法返回一个包含一些信息的int值。 对于调试,我想知道这个返回值。但我不想将结果赋给变量(var result=tpc.ExecuteCommand())

VisualStudio 2010在调试期间是否有可能检查此返回值而不将其分配给临时变量

提前感谢您的建议


编辑:最后,此功能已添加到

您可以使用VS2010中的IntelliTrace,切换到“调用视图”,然后检查自动窗口:

但即使没有这些,也不要担心;如果不使用该变量(暂停时查看调试器除外),则在发布版本中,该变量将被删除并替换为一个“pop”(如果不首先捕获返回值,则会得到该变量)

因此:

汇编如下:

.method private hidebysig static void Main() cil managed
{
    .entrypoint
    .maxstack 8
    L_0000: call int32 Program::SomeMethod()
    L_0005: pop 
    L_0006: ret 
}
注意:无
.locals
和无
stloc

对于Resharper,请使用:

// ReSharper disable UnusedVariable
    int i = SomeMethod();
// ReSharper restore UnusedVariable

您可以在调试期间使用手表或即时窗口。您可以将代码复制到即时窗口中,以便在调试期间运行它,以查看它返回的内容。但是,它将再次执行代码以获取返回值。

AFAICT,如果使用它,可以显示返回值,如下图所示:


:-)你说得对。我唯一的问题是,resharper不喜欢这种带有“从不使用局部变量”的代码。我不想抑制这种警告,因为在很多情况下,它会有所帮助……很多时候,我没有将它分配给某个对象,并且希望它在我开始调试之前就已经被分配了。如果它与局部变量或其他东西一起出现,那就太好了。@rhe1980我想知道r#是否有一个“不要在这里应用这个”选项。。。编辑:确实如此-请参见edit@MarcGravell谢谢你的帖子!我会试试intellitrace。对于suppress resharper warnings,我有点谨慎,因为我不希望最终我的团队中的所有人都在使用它,代码中充满了抑制:-)@MarcGravel:感谢更新(遗憾的是,我使用了express)。除此之外,这样做假设调用的方法是幂等的。还要注意额外通话可能产生的副作用。
// ReSharper disable UnusedVariable
    int i = SomeMethod();
// ReSharper restore UnusedVariable