生成方法存根 (Stub)
更新:2007 年 11 月
生成方法存根 (Stub) 是一项 IntelliSense 自动代码生成功能,它提供了一种简便的方法,使 Visual Studio 在您编写方法调用时创建新的方法声明。Visual Studio 从此调用中推断声明。
某些编程样式(如测试驱动的开发)建议您应在定义之前使用。这样会更容易确定您开发的 API 的形式。您可以使用 IntelliSense 以这种样式进行编程。生成方法存根 (Stub) 操作有助于避免在使用之前定义所有内容。
生成方法存根 (Stub) IntelliSense 操作还可以提高工作效率,因为您不必为生成新方法从调用代码转移到定义代码,即从当前的工作中心转移到另一个分散的中心。相反,您可以编写方法调用,然后再调用生成方法存根 (Stub) 操作,这样不会分散注意力。
备注
通过智能标记进行调用
一个智能标记指示您可以调用生成方法存根 (Stub) 操作。此智能标记只有在光标位于方法调用中时才可用,并在 Visual Studio 找不到与调用的方法具有相同参数名称和参数数目的方法时变为可见。当此智能标记可见时,它显示在方法标识符最左侧字符的下方。如果将光标从方法调用上移开,此智能标记将消失。
可以通过键盘快捷方式、“IntelliSense”菜单和代码编辑器中的快捷方式菜单调用“生成方法存根(Stub)”命令。有关更多信息,请参见 如何:生成方法存根 (Stub)。
手动调用
在所有上下文中,始终可以从“IntelliSense”菜单访问“生成方法存根(Stub)”命令。这允许只有参数类型不同而参数数目相同的重载。例如:
class Program
{
static void Method(int a) { }
static void Main()
{
Method("Call"); // No smart tag.
}
}
在前面的示例代码中,当光标位于 Method 调用上时,智能标记可用。然而,如果您从“IntelliSense”菜单调用“生成方法存根(Stub)”命令,则 IntelliSense 会生成一个名为 Method 的静态方法,该方法带有一个字符串参数。
生成的方法存根 (Stub) 可能为实例或静态方法。如果在类型上调用方法,则生成的存根为静态方法,否则为实例。
参数名称
对于生成的方法存根 (Stub),各个形参的名称从传递给方法调用的实参名派生。例如:
class Program
{
static void Main()
{
string filename = @"file.txt";
int wordCount = CountWords(filename);
}
}
在前面的示例代码中,生成方法存根 (Stub) 将生成一个方法签名,它带有一个名为 filename 的字符串类型的参数。
由生成方法存根 (Stub) 功能生成的代码以文件 MethodStub.snippet 中定义的代码段为模型。代码段是可以修改的。有关更多信息,请参见 如何:管理代码段。
不明确的类型
当无法推断参数或返回值的类型时,例如不明确的类型或隐式键入的本地变量(关键字 var),生成方法存根 (Stub) 将使用 Object。例如:
class Program
{
static void Main()
{
var filename = Method(); //Cannot infer the return type
}
}
在前面的示例中,在 Method() 上调用生成方法存根 (Stub) 将生成一个方法存根 (Stub),该存根将返回 Object。