C# 추출 방법 재구성
'추출 방법' 은 재구성 작업으로 기존 구성원 중의 코드 세그먼트에서 새로운 방법을 만드는 편리한 방식을 제공한다.
'추출 방법' 을 사용하면 기존 구성원의 코드 블록에서 코드 그룹을 추출하여 새로운 방법을 만들 수 있습니다.추출된 새로운 방법은 선택한 코드를 포함하고, 기존 구성원 중의 선택한 코드는 새로운 방법에 대한 호출로 대체됩니다.코드 세그먼트를 자신만의 방법으로 바꾸는 방법을 통해 코드를 신속하고 정확하게 재구성하여 더욱 좋은 중용성과 신뢰성을 얻을 수 있다.
추출 방법은 다음과 같은 이점을 제공합니다.
4
4
4
4
1. ExtractMethod라는 콘솔 프로그램을 만들고 다음 코드 예시를 사용하여 프로그램을 대체합니다.
class A
{
const double PI = 3.141592;
double CalculatePaintNeeded(double paintPerUnit, double radius)
{
// Select any of the following:
// 1. The entire next line of code.
// 2. The right-hand side of the next line of code.
// 3. Just "PI *" of the right-hand side of the next line
// of code (to see the prompt for selection expansion).
// 4. All code within the method body.
// ...Then invoke Extract Method.
double area = PI * radius * radius;
return area / paintPerUnit;
}
}
2. 추출할 코드 세그먼트를 선택합니다.
double area = PI * radius * radius;
3. 재구성 메뉴에서 추출 방법을 클릭합니다.
추출 방법 대화상자가 나타납니다.
키보드 단축키 Ctrl+R, Ctrl+M을 입력하여 추출 방법 대화상자를 표시할 수도 있습니다.
선택한 코드를 오른쪽 단추로 눌러서 '재구성' 을 가리키고 '추출 방법' 을 누르면 '추출 방법' 대화상자를 표시할 수 있습니다.
4. 새 방법 이름 상자에 CircleArea와 같은 새 방법의 이름을 지정합니다.
새 메소드 서명의 미리 보기는 메소드 서명 미리 보기 아래에 표시됩니다.
5. "확인"을 클릭
참고:
'추출 방법' 명령을 사용하면 같은 클래스의 원본 구성원 다음에 새로운 방법을 삽입합니다.
섹션 유형
클래스가 부분 유형이라면 '추출 방법' 은 원본 구성원을 따라가서 새로운 방법을 생성합니다.'추출 방법' 은 새로운 방법의 서명을 확인하고, 새로운 방법의 코드가 실례 데이터를 인용하지 않을 때 정적 방법을 만듭니다.
일반 유형 매개 변수
추출 방법이 제약을 받지 않는 일반 형식 파라미터를 가지고 있을 때, 이 파라미터에 값을 부여하지 않으면 생성된 코드는 이 파라미터에ref 수식자를 추가하지 않습니다.추출 방법이 인용 형식을 일반 형식의 실참으로 지원한다면, 방법 서명에 있는 인삼에 수동으로ref 수식자를 추가해야 합니다.
익명 방법
익명 방법 (이 방법은 익명 방법 외에 성명되거나 인용된 국부 변수에 대한 인용을 포함함) 의 일부분을 추출하려고 시도하면, Visual Studio는 의미 변경이 있을 수 있음을 경고합니다.
익명 방법이 국부 변수의 값을 사용할 때, 익명 방법을 실행할 때 이 값을 가져옵니다.익명 방법을 다른 방법으로 추출할 때, 추출 방법을 호출할 때 국부 변수의 값을 가져옵니다.
아래의 예는 이 의미의 변경을 설명한다.이 코드를 실행하면 컨트롤러에 11을 출력합니다.'추출 방법' 을 사용하여 코드 주석에 표시된 코드 영역을 자신의 방법으로 추출한 다음 재구성된 코드를 실행하면 컨트롤러에 10을 출력합니다.
class Program
{
delegate void D();
D d;
static void Main(string[] args)
{
Program p = new Program();
int i = 10;
/*begin extraction*/
p.d = delegate { Console.WriteLine(i++); };
/*end extraction*/
i++;
p.d();
}
}
이 문제를 해결하려면 익명 방법에서 사용하는 국부 변수를 클래스 필드로 만드십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.