Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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
Vb.net Resharper 4.5提取方法-Can';我得不到功能!_Vb.net_Visual Studio 2008_Refactoring_Methods_Resharper 4.5 - Fatal编程技术网

Vb.net Resharper 4.5提取方法-Can';我得不到功能!

Vb.net Resharper 4.5提取方法-Can';我得不到功能!,vb.net,visual-studio-2008,refactoring,methods,resharper-4.5,Vb.net,Visual Studio 2008,Refactoring,Methods,Resharper 4.5,我正在VisualStudio2008中使用Resharper 4.5。每当我尝试将代码块提取到方法中时,它都会尝试创建一个子例程而不是函数。“返回类型”选项已禁用。关于如何让它创建函数而不是子例程,有人有什么建议吗 谢谢 您突出显示的代码可能没有任何可返回的内容。如果您突出显示的代码没有设置代码后面使用的变量,那么重构后的代码将不会返回任何内容 例如,如果我突出显示此代码并提取方法 Program p = new Program(); p.DoStuff();

我正在VisualStudio2008中使用Resharper 4.5。每当我尝试将代码块提取到方法中时,它都会尝试创建一个子例程而不是函数。“返回类型”选项已禁用。关于如何让它创建函数而不是子例程,有人有什么建议吗


谢谢

您突出显示的代码可能没有任何可返回的内容。如果您突出显示的代码没有设置代码后面使用的变量,那么重构后的代码将不会返回任何内容

例如,如果我突出显示此代码并提取方法

        Program p = new Program();
        p.DoStuff();
。。。没有要返回的内容(除了此代码之外,我不引用p)。如果我突出显示此代码的前两行

        Program p = new Program();
        p.DoStuff();
        p.DoMoreStuff();

。。。然后Resharper将创建一个返回程序实例(即“p”)的方法。

这似乎取决于您如何声明变量。在上面的示例中,如果我(在VB中):“Dim p As New Program”并突出显示您所说的内容,它仍然执行一个子例程,但如果我执行:“Dim p As Program=New Program”,则它返回一个函数。我认为这很愚蠢,但是谢谢!