2011-08-29 3 views
6

Nếu tôi có một mã C# như thế này:Công cụ để trích xuất lớp cơ sở?

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; } 

} 

Như PropAPropB tồn tại trong cả hai lớp, và có cùng ý nghĩa, tôi muốn cấu trúc lại như thế này:

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; } 

} 

Sử dụng VS 2010, có công cụ/tiện ích mở rộng nào cho phép tôi nhanh chóng thực hiện điều đó không? Trên thực tế, mã thực sự của tôi chứa hàng tá thuộc tính trong một số lớp, không theo cùng thứ tự. Đây có thể là một chút đau đớn để xác định đúng mã ... đó là lý do tại sao tôi đang tìm một cách lười biếng để làm điều này

Trả lời

2

Bạn có thể sử dụng Resharper với "Extract Superclass".

+0

Resharper là thương mại ... có thể là công cụ miễn phí? (Có, tôi biết Resharper có lợi thế khác có thể biện minh cho chi phí của nó ... nhưng nó không phải là vấn đề ở đây) –

+0

Có thể [CodeRush Xpress] (http://community.devexpress.com/blogs/markmiller/archive/2009/06/ 25/coderush-xpress-cho-c-và-visual-basic-2008.aspx) cũng hỗ trợ điều này. Nếu đó là công việc một lần, bạn cũng có thể sử dụng phiên bản dùng thử của Resharper để hoàn thành công việc –

+0

CodeRush không cung cấp điều này (Tôi đang sử dụng CodeRush Xpress) –