【问题标题】:Snippet code to create constructor in VS2010 Express在 VS2010 Express 中创建构造函数的代码片段
【发布时间】:2011-10-18 15:21:04
【问题描述】:

在 VS 2010 Express 版本(用于 C#)中是否有任何现成的代码 sn-p 可以使用来自选定属性的参数创建构造函数?

当我创建一个新类并编写以下代码时:

public class FileDetails
{
    public int ID { get; set; }
    public string FileName { get; set; }
    public string FilePath { get; set; }
    public DateTime LastWriteTime { get; set; }
    public FileStatus LastFileStatus { get; set; }
    public NotifyIfFileNotExists NotifyIfFileNotExists { get; set; }
    public string RecepientsEmailList { get; set; }
    public string AdminEmailList { get; set; }

    public FileDetails()
    {
    }
}

我想用鼠标选择所有公共属性(或放一些 sn-p 代码),它们会为我生成以下构造函数:

public FileDetails(int id, string fileName, string filePath, DateTime lastWriteTime, FileStatus lastFileStatus, NotifyIfFileNotExists notifyIfFileNotExists, string recepientsEmailList, string adminEmailList)
{
    this.ID = id;
    this.FileName = fileName;
    this.FilePath = filePath;
    this.LastWriteTime = lastWriteTime;
    this.LastFileStatus = LastFileStatus;
    this.NotifyIfFileNotExists = notifyIfFileNotExists;
    this.RecepientsEmailList = recepientsEmailList;
    this.AdminEmailList = adminEmailList;
}

问题:是否有任何现成的解决方案,或者,如果没有,是否有人知道如何实现这一目标或现成的代码?

最好的问候,
马辛

【问题讨论】:

  • 你研究过 ReSharper 吗?
  • @Ramhound,这也是我推荐的。但考虑到他使用的是 Express 版本,我怀疑他是否有钱。 Resharper 甚至可以与 Express 版本一起使用吗?
  • 任何版本的 Visual Studio Express 都不支持插件,因为这不能用 sn-p 完成,他的选择基本上仅限于使用另一个编辑器。
  • AFAIK ReSharper 作为试用版提供,许可成本对我的公司来说太大了(不幸的是......我必须使用 Express 版是有原因的)。更重要的是,到目前为止,我只需要这个特定的功能。
  • @mj82,你现在这么说。但是,如果您实际使用它一段时间,您会说您需要许多其他功能。我很确定,对 R# 的投资实际上会对您的公司产生财务效益。

标签: c# visual-studio code-snippets


【解决方案1】:

ReSharper 正是您所寻找的。但是没有免费版本。但是从 .NET 3.5 开始,您可以在不为每个属性指定显式参数的情况下初始化属性。

【讨论】:

    【解决方案2】:

    我不相信 sn-ps 可以帮助您。您需要能够分析属性的类型以生成构造函数,此外还需要能够转换为驼峰式大小写。sn-ps 基本上是简单的替换。

    【讨论】:

    • 驼色外壳是次要问题,如果它重复属性 1:1 我会很高兴
    【解决方案3】:

    嗯...我认为最好的解决方案可能是使用某种脚本。然后,您可以从命令行运行它,或者使用具有脚本支持的单独文本编辑器,将类复制/粘贴到第二个编辑器,运行生成构造函数的脚本,将构造函数复制/粘贴回 VS Express。

    说,带有 python 脚本插件的 Notepad++?

    【讨论】:

      猜你喜欢
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多