代码之家  ›  专栏  ›  技术社区  ›  lance

自动生成变量*名称*以匹配您提供的参数?

  •  9
  • lance  · 技术社区  · 14 年前

    R 4.5(欢迎回答5个问题)
    VS2008(欢迎回答VS2010)
    C(FWIW)

    我使用的是一个构造函数(这个问题也适用于方法),还有intellisense:

    我还没有为第一个参数“firstname”指定值。今天,我 键入“firstname” ,然后让IDE为我创建该变量(我初始化为某个值)。

    我知道IDE将为我创建 变量。我希望它为我创建变量名。

    我不想输入“名字”。我喜欢作者选择的变量名,我想在我的(调用)代码中使用该变量名。

    有没有办法让这些可接受的变量在我移动时自动为我重新生成(调用代码),通过这一行(调用)代码,参数逐个参数?

    Foo Constructor Intellisense, showing the parameter variable names

    我还没有为第一个参数“firstname”指定值。今天,我 键入“firstname” ,然后让IDE为我创建该变量(我将其初始化为某个值)。

    我知道IDE将创建 变量 为了我。我要它创造 变量名 为了我。

    我不想输入“名字”。我喜欢作者选择的变量名,我想在我的(调用)代码中使用该变量名。

    有没有办法让这些可接受的变量 姓名 当我通过这一行(调用)代码,一个参数一个参数地移动时,是否自动为我重新生成(调用代码)?

    5 回复  |  直到 14 年前
        1
  •  2
  •   Merlyn Morgan-Graham    14 年前

    你可能会接近你正在寻找的VS2010。

    • 类型 p.Foo(

    这将从所有构造函数列表中打开当前所选构造函数的描述。如果键入字母,或按ctrl+space,将打开IntelliSense自动完成。

    这里,VS2008和VS2010之间的区别是命名参数。在VS2010中,完成列表将包含命名参数的条目。 firstName: lastName: .

    • 键入参数名的第一个字母(您所指的是“参数作者选择的变量名”)。

    IntelliSense应该直接跳转到该条目,并允许您像通常那样完成。

    • 键入空格、Enter或逗号

    它将插入用于命名参数的标识符。它不会插入冒号(除非您键入它),所以您不必使用命名参数功能来实现您的目标。你可以利用你正在寻找的文本在你的完成列表中这一事实。

    如何让Visual Studio实际生成局部变量(根据您的问题,似乎已经解决了)让我感到困惑,需要您来处理:)如果您解决了第二个问题,我也想知道如何解决。

        2
  •  0
  •   John Alexiou    14 年前

    您可以创建一个代码段来创建变量并将其作为参数插入。

    MSDN Reference on snippets

        3
  •  0
  •   Kay Khan    14 年前

    我不完全理解您的场景,但我假设您希望将调用程序集的变量名注入被调用的代码中。如果是这样,你可能想调查一下 系统代码 这使您可以在运行时创建类及其成员,而不必考虑它提供的大量其他功能。

        4
  •  0
  •   ralf.w.    14 年前

    我非常确定您可以使用Resharper或CodeRush/Refactor来完成它。

        5
  •  0
  •   James Fleming    14 年前

    我觉得你要做的就是完全停止打字!为了让IDE把代码放在你想要的地方,所以你不必这样做。一个相当崇高的目标——除了你让我们都失业;-(

    撇开所有有趣的事情不谈,你可能想要的是一个代码生成工具,比如T4工具箱(我最喜欢的新玩具之一)。如果您正在寻找一个工具,可以在您键入代码时自动生成代码片段,这是一个很高的要求。最接近的东西就是重弹琴。

    下面是我从自定义t4工具箱模板生成的类构造函数示例:

     public partial class EvaluationController : SmartController
        { 
            private readonly IEvaluationService _evaluationSvc;
            private readonly IEvaluationMapper _evaluationMapper;
            private readonly IEvaluationCriterionMapper _evaluationCriterionMapper;
            private readonly IParticipantEvaluationMapper _participantEvaluationMapper;
    
            public EvaluationController( IEvaluationRepository repository, IEvaluationService evaluationSvc, IEvaluationMapper evaluationMapper, IEvaluationCriterionMapper evaluationCriterion, IParticipantEvaluationMapper participantEvaluation)
            {//     : base(repository, evaluationMapper)
                  _evaluationSvc =  evaluationSvc;
                  _evaluationMapper = evaluationMapper;
                 _evaluationCriterionMapper = evaluationCriterion;
                 _participantEvaluationMapper = participantEvaluation;
            }
    

    如果这就是你所追求的,那么开始的地方应该是: http://t4toolbox.codeplex.com/

    我有一个示例项目,在该项目中,我使用模板的定制来调整我的业务类、各种方法和存储库层。 http://t4tarantino.codeplex.com/ 这里有一个例子,说明您可以在 http://geekswithblogs.net/JamesFleming/archive/2010/08/18/code-generation-with-t4-toolbox.aspx

    高温高压