生成自定义属性代码我VS?

时间:2011-05-25 07:52:54

标签: c# visual-studio-2010 properties code-generation

我讨厌写重复的代码......

在我当前的项目中,我需要编写在每个类中看起来相同的属性,但是从类到类不同。

我希望从私有的memeber变量生成自定义属性。假设我已经声明了一个像这样的Name变量。

private string Name;

在我的第一堂课中,我想自动生成这样的属性:

private string m_name;
public string Name
{
get
{ return m_name; }
set
{
  m_name = value;
  // some code....e.g.
  m_counter++;
}

也许我想要在我的第二课中实现另一种实现,例如

private string m_name;
public string Name
{
get
{ return m_name; }
set
{
  // some code....e.g.
  if(MyValidationFramework.Validate("Name", value))
  {
    m_name = value;
  }
}

我知道我可以创建自己的代码段。由于我经常更改属性实现,我想从模板生成属性,然后更改模板并再次生成属性。可以这样做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这不是你问题的直接答案。但是,通过您展示的示例,为什么不使用基类并从中继承,如下所示:

public abstract class BaseClass
{
    private string m_name;

    public string Name
    {
        get { return m_name; }
        set
        {
            if (BeforeNameSet(value))
                m_name = value;
        }
    }

    public virtual bool BeforeNameSet(string name)
    {
        return true;
    }
}

public abstract class ChildClass : BaseClass
{
    public override bool BeforeNameSet(string name)
    {
        // do the part that is different
        return false;
    }
}

<强> [编辑]

我看到你的片段不适合你。
您可以创建一个项目模板(How to: Manually Create Item Templates),但最终这需要更多努力,因为您希望能够动态更新这些模板。项目模板是一个zip文件,您需要更改内容。

似乎复制/粘贴似乎是你最好的选择。