2011-08-29 33 views
6

如果我有一個C#代碼:提取基類的工具?

public class A { 
    public string PropA { get; set; } 
    public string PropB { get; set; } 

    public string PropZ { get; set; } 

} 

public class B { 
    public string PropA { get; set; } 
    public string PropB { get; set; } 

    public string PropX { get; set; } 
    public string PropY { get; set; } 

} 

由於PropAPropB同時存在於類,並具有相同的含義,我想重構是這樣的:

public abstract class Base { 
    public string PropA { get; set; } 
    public string PropB { get; set; } 
} 

public class A : Base { 
    public string PropZ { get; set; } 

} 
public class B : Base { 

    public string PropX { get; set; } 
    public string PropY { get; set; } 

} 

使用VS 2010,有沒有任何工具/擴展可以讓我快速做到這一點?實際上,我的實際代碼在幾個類中包含了幾十個屬性,而不是以相同的順序。這可能會讓代碼正確分解有點痛苦...這就是爲什麼我要尋找一種懶惰的方式來做到這一點

回答

2

你可以使用Resharper和「Extract Superclass」。

+0

Resharper是商業...也許是一個免費的工具? (是的,我知道Resharper有其他優點,可以證明它的成本......但這不是問題) –

+0

也許[CodeRush Xpress](http://community.devexpress.com/blogs/markmiller/archive/2009/06/ 25/coderush-xpress-for-c-and-visual-basic-2008.aspx)也支持這一點。如果這是一次性工作,你也可以使用Resharper的試用版來完成工作 –

+0

CodeRush不提供這個(我正在使用CodeRush Xpress) –