簡體   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