2011-10-05 2 views
1

다른 사람이 같은 클래스를 12 번 복사하고 붙여 넣은 다음 몇 가지 사용자 지정 항목을 추가 한 프로젝트를 처리해야하지만 주로 클래스의 구조는 서로 복사되므로 실제로 비슷합니다. .여러 C# 클래스 추상화

나는 코드베이스를 보면서 참을 수가 없기 때문에 코드를 리팩터링하는 것이 가늘다.

이 두통을 자동화 할 수있는 도구가 있습니까? 즉, 동일한 속성과 메서드를 부모 클래스로 추출하고 다른 클래스가 그 클래스에서 상속되게 만들 수있는 도구가 있습니까?

+10

나는 그 도구였습니다 .... –

+0

DIY 프로젝트 – Asdfg

+0

이라면 C# = 'Extract Interface'옵션을 사용할 수 있습니다. 이것은 도움이됩니다. –

답변

3

arivman과 유사하게 Resharper을 발사하십시오. 30 일 무료 평가판, 1 인당 사용할 수있는 평생 사용권 (집에 가져갈 수 있음을 의미하며 허용한다면 다른 작업에 사용 가능).

+0

[Extract Superclass] (http://www.jetbrains.com/idea/webhelp/extract-superclass.html) 기능이 있지만 표시된 예는 Java입니다. 보다 더 가치있는 것. – MPelletier

+0

ReSharper에 대한 경험이 상당히 있으며, 수행 할 수있는 훌륭한 리팩토링뿐만 아니라 정적 분석을 제공하는 매우 유용한 도구이기도합니다. –

+1

Resharper는 믿을 수없는 도구이지만, 여러 클래스를 선택하고 교차 기호를 추출 할 수있는 비교 리팩터링을 제공한다고 생각하지 않습니다. 그들의 * Extract Superclass *는 단일 클래스만을 기반으로하는 수퍼 클래스를 만듭니다. – arviman

2

무료 해결책 (직접하는 것 외에는)을 모르지만 KnowDotNet에서 NET Refractor을 얻을 수 있습니다. 심지어 30 일 무료 평가판도 있습니다!

+0

그것은'NetRefactor 2.1.70은 Visual Studio 1.1의 최신 버전이다 .'' ... 음, 뭐라구? lol – Mehrdad

+0

LMAO은 .NET 1.1 (다른 사이트에서 Visual Studio 1.1,2.0 및 3.5에 대한 또 다른 참조가 있음)을 의미하므로 웹 페이지 작성자가 프레임 워크를 IDE와 혼동하고 있음이 분명합니다. 나는 VS 2010과 .NET 4에서 그것을 시도하지 않았지만 "Extract Superclass"기능이 OOB를 사용해야한다고 생각하고 있습니다. 그렇지 않은 경우 .NET 1 프로젝트를 만들고 12 개의 클래스를 포함하고 .net 4 코드를 주석 처리하고 수퍼 클래스를 추출한 다음 수동으로 다시 복사/붙여 넣기하십시오. – arviman

1

Natural selection을 선택하기 전에 Clone Detective 같은 도구를 사용하는 것이 좋습니다. 더 많은 중복 된 숨김이있을 수 있습니다.

Resharper squigglies는 분명히 jiffy에서 수정하기 위해 코드 냄새와 키보드 조합에 대한 몇 가지 힌트를 제공 할 것입니다.

here의 비트와 조각을 잠재적으로 사용할 수도 있으며, 개인적으로 이러한 상황에서 분기 및 태그 지정을 사용하면 매우 효과적입니다. 모든 분석 실사는 내가 생각하는 코드를 파고 들기 전에 먼 길을 간다.

0

여기서 우리는 simian을 사용하여 중복 코드를 찾습니다. 그러나 다시 한 번 수동 개입 2 제거 또는 2 업데이트가 필요합니다.

관련 문제