C#代码生成/删除冗余代码

C#代码生成/删除冗余代码,c#,templates,code-generation,C#,Templates,Code Generation,我在一个类中有一些简单的代码: private ITemplate _content1 = null; [TemplateContainer(typeof(ContentContainer))] public ITemplate Content1 { get { return _content1; } set { _content1 = value; } } 我需要15个这样的内容容器。我可以把这个块复制粘贴15次,然后改变数字,但一定有更好的方法。有人能推荐一

我在一个类中有一些简单的代码:

private ITemplate _content1 = null;
[TemplateContainer(typeof(ContentContainer))]
public ITemplate Content1
{
    get
    { return _content1; }
    set
    { _content1 = value; }
}
我需要15个这样的内容容器。我可以把这个块复制粘贴15次,然后改变数字,但一定有更好的方法。有人能推荐一种更干净的方法吗?

试试这个:

[TemplateContainer(typeof(ContentContainer))]
public ITemplate Content1
{ get; set; }
请尝试以下方法:

[TemplateContainer(typeof(ContentContainer))]
public ITemplate Content1
{ get; set; }
有一个属性(prop)片段(片段是VisualStudio固有的)

修改代码段(它是一个简单的xml文件),或者为您的任务创建一个新的代码段

ReSharper有一种更简单的方法,称为代码模板

或者,使用t4脚本生成所需的属性。但这可能有些过分。

有一个属性(prop)片段(片段是VisualStudio固有的)

修改代码段(它是一个简单的xml文件),或者为您的任务创建一个新的代码段

ReSharper有一种更简单的方法,称为代码模板


或者,使用t4脚本生成所需的属性。但这可能有些过分。

为什么不使用容器集合,例如List?似乎您唯一想更改的是整数索引,使用列表是有意义的。

为什么不使用容器集合,例如List?似乎您唯一想更改的是整数索引,使用列表是有意义的。

请注意,这仅在C#3时可用。我使用的是C#2.0,这对我很有用。我仔细检查了我的项目的属性,它肯定在使用2.0。您确定3.0要求吗?2.0.Net项目!=C#2.0。如果它编译好了,你很好。同时又疯狂又可怕。它工作,所以我会使用它-我可以处理每个属性2行。谢谢这是VS2008中编译器的一项功能。无论目标框架是什么,您都可以获得这些功能。请注意,这只在C#3之后才可用。我使用的是C#2.0,这对我很有用。我仔细检查了我的项目的属性,它肯定在使用2.0。您确定3.0要求吗?2.0.Net项目!=C#2.0。如果它编译好了,你很好。同时又疯狂又可怕。它工作,所以我会使用它-我可以处理每个属性2行。谢谢这是VS2008中编译器的一项功能。无论目标框架是什么,您都可以获得这些功能。您是否可以让Content1包含ITemplate项?不清楚您想做什么-有没有可能为问题添加一些上下文?您是否可以让Content1包含ITemplate项?不清楚您想做什么-有没有可能为问题添加一些上下文?