繁体   English   中英

在Visual Studio中如何在不键入文字的情况下剪切/粘贴方法签名?

[英]How to cut/paste method signature without type in visual studio?

复制此文件时是否有任何扩展名

aMethod(string mystring,ref long mylong, int myint = 100) 
or just
(string mystring,ref long mylong, int myint = 100)

将粘贴

(mystring,mylong,myint)

有时我想用两种(或更多种)方法分解“ aMethod”。 aMethod仍将是前端,但会将某些计算层叠到另一个(或多或少)使用相同参数的方法。

mymethod(string mystring,ref long mylong,int myint = 100){..}

会变成

mymethod(string mystring,ref long mylong, int myint = 100){
...
var x = mynewmethod(mystring,mylong,myint);
// or maybe x = mynewmethod(mystring,mylong,myint,anotherarg);
... 
}

当然,我可以剪切/粘贴然后清理(所有“字符串”,“ int”,“ ref”等),但是当有十分之一的参数时,这将变得乏味。

您可以对我的Visual Commander扩展使用以下命令(语言C#):

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        EnvDTE.TextSelection ts = DTE.ActiveWindow.Selection as EnvDTE.TextSelection;
        if (ts == null)
            return;
        EnvDTE.CodeFunction func = ts.ActivePoint.CodeElement[EnvDTE.vsCMElement.vsCMElementFunction] as EnvDTE.CodeFunction;
        if (func == null)
            return;

        string result = "";
        foreach(EnvDTE.CodeParameter i in func.Parameters)
        {
            if (result.Length > 0)
                result += ", ";
            result += i.Name;
        }
        ts.Text = "(" + result + ")";
    }
}

当您使用aMethod主体内部的插入符号调用此命令时,它将插入逗号分隔的函数参数名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM