C# [Visual Studio] CodeMaid를 이용하여 편리하게 코드를 정리하자. (Let's use the CodeMaid …
페이지 정보
본문
안녕하세요. 소심비형입니다. 오늘은 비주얼 스튜디오의 확장 기능인 CodeMaid 사용 방법에 대해서 알아보겠습니다. 우리는 프로그램을 완성한 후 좀 더 보기 좋게 하기 위해서 코드를 정리합니다. 또는 코딩하는 중간 중간 코드를 정리하기도 합니다. 이런 수동적인 작업을 편리하게 도와주는 확장 툴입니다.
비주얼 스튜디오를 실행한 후 도구 > 확장 및 업데이트를 클릭하세요.
아래 그림과 같이 좌측에 온리인을 선택한 후 우측의 검색창에 "CodeMaid"를 입력합니다.
중앙에 검색되는 CodeMaid를 다운로드하세요.
다운로드가 완료되면 자동으로 설치됩니다.
설치가 완료되면 비주얼 스튜디오를 다시 실행하세요.
준비가 되면 비주얼 스튜디오를 종료하세요.
설치가 진행됩니다.
코드매이드의 기능을 알아보기 위해 간단한 응용 프로그램을 만듭니다. 콘솔 프로그램을 생성한 후 아래와 같이 코드를 추가 해주세요.
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
#region Member Fields
#endregion
static void Main(string[] args)
{
if (args.Length > 0)
{
foreach (var arg in args)
{
Console.WriteLine(arg);
}
}
Thread thread1 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 1: {0}", i);
}
});
Thread thread2 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 2: {0}", i);
}
});
Thread thread3 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 3: {0}", i);
}
});
thread1.Start();
thread2.Start();
thread3.Start();
Console.ReadKey();
}
#region Member Methods
public static void Run1()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 1: {0}", i);
}
}
public static void Run2()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 2: {0}", i);
}
}
public static void Run3()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 3: {0}", i);
}
}
#endregion
}
}
위 예제 코드의 불필요한 코드들을 자동으로 제거해줍니다. 이 명령을 실행한 후 코드를 다시 확인 해보세요.
코드 정리는 아래와 같은 작업들을 수행합니다.
-
사용하지 않는 using문을 제거하고, 정렬합니다.
-
클래스 또는 메서드에 한정자가 없다면 추가합니다.
-
불필요한 빈 줄을 제거합니다.
-
구문 분리용 빈 줄의 경우 간격을 자동으로 조정 해줍니다.
-
내용이 없는 전처리 기호(#region)를 제거합니다.
-
라인의 끝에 공백이 있을 경우 공백을 제거합니다.
-
비주얼 스튜디오 서식을 적용시킵니다.
CodeMaid Spade 트리뷰에서 맴버들을 쉽게 이동할 수 있습니다.
클래스 맴버들을 Drag & Drop으로 쉽게 이동할 수 있습니다. 또한, 간단한 메타 정보와 복잡도도 표시합니다.
속성의 경우 읽기 전용, 쓰기 전용, 읽기/쓰기 전용인지 쉽게 파악할 수 있습니다.
분산되어 있는 필드와 맴버를 마이크로소프트의 StyleCop 규칙에 맞게 정리합니다. 아래와 같이 필드와 속성을 메서드 사이에 분산해서 코딩합니다.
Program.cs
using System;
using System.Threading;
namespace ConsoleApp1
{
internal class Program
{
public string name;
public string Name
{
get { return name; }
set { name = value; }
}
private static void Main(string[] args)
{
if (args.Length > 0)
{
foreach (var arg in args)
{ Console.WriteLine(arg); }
}
Thread thread1 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 1: {0}", i);
}
});
Thread thread2 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 2: {0}", i);
}
});
Thread thread3 = new Thread((ThreadStart)delegate
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 3: {0}", i);
}
});
thread1.Start();
thread2.Start();
thread3.Start();
Console.ReadKey();
}
public int age; public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public string Address { get; set; }
#region Member Methods
public static void Run1()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 1: {0}", i);
}
}
public static void Run2()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 2: {0}", i);
}
}
public static void Run3()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("Thread 3: {0}", i);
}
}
#endregion Member Methods
}
}
위 코드의 필드와 속성이 메서드와 섞여있습니다. 아래 그림과 같이 재구성하게 되면 필드, 속성, 인덱서, 메서드등등... 자동으로 정리됩니다.
실행한 후 맴버들이 재구성된 모습니다.
불필요한 줄바꿈을 제거 해줍니다.
이 작업은 라인을 정리 하기전에 영역을 선택해야 합니다.
선택한 속성의 줄바꿈이 제거 되었습니다. 보통 간단한 반복기나 속성 및 인덱서의 경우 한줄로 표시하곤 합니다. 비주얼 스튜디오에서 자동으로 서식이 지정될 때 원하는 영역을 선택하고 라인을 제거할 수 있습니다.
이외에도 비주얼 스튜디오의 솔루션 탐색기와 통합되어, 한번에 코드를 정리 할 수 있고 솔루션 트리를 축소 할 수도 있습니다. 자잘한 기능들이 많이 있지만, 이외에 그렇게 사용할 만한 기능은 없네요^^;
- 이전글링큐 연산자. (Operators in LINQ - Union, Concat, Intersect, Distinct, Except) 20.09.14
- 다음글You need to use a theme.appcompat theme (or descendant) with this activity. 20.09.14