C#의 Console.MoveBufferArea() 메서드는 콘솔 화면 버퍼에서 지정된 원본(source) 영역을 지정된 대상(target) 영역으로 복사·이동할 때 사용되는 메서드입니다. 콘솔 애플리케이션에서 화면의 특정 영역을 다른 위치로 옮겨야 할 때 유용하게 활용할 수 있습니다.
메서드 구문(Syntax)
Console.MoveBufferArea() 메서드의 기본 구문은 다음과 같습니다.
public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop);
각 매개변수의 의미는 아래와 같습니다.
- sourceLeft : 이동할 원본 영역의 가장 왼쪽 열(column) 위치
- sourceTop : 이동할 원본 영역의 가장 위쪽 행(row) 위치
- sourceWidth : 원본 영역의 너비(열 개수)
- sourceHeight : 원본 영역의 높이(행 개수)
- targetLeft : 이동될 대상 영역의 가장 왼쪽 열 위치
- targetTop : 이동될 대상 영역의 가장 위쪽 행 위치
즉, 원본 영역의 시작 좌표(left, top)와 크기(width, height), 그리고 대상 영역의 시작 좌표(left, top)를 지정하면 해당 영역이 통째로 이동합니다.
사용 예제(Example)
다음은 C#에서 Console.MoveBufferArea() 메서드를 실제로 사용하는 예제 코드입니다.
using System;
class Demo {
public static void Main(string[] args) {
Console.WriteLine("Demo text!");
Console.MoveBufferArea(0, 0, Console.BufferWidth, Console.BufferHeight, 20, 20);
}
}
위 코드를 살펴보면 먼저 "Demo text!"라는 문자열을 콘솔에 출력한 후, MoveBufferArea() 메서드를 호출하여 전체 화면 버퍼(Console.BufferWidth, Console.BufferHeight)를 오른쪽으로 20칸, 아래로 20행 이동시키고 있습니다.
실행 결과(Output)
위 프로그램을 실행하면 출력된 텍스트가 지정된 대상 위치(20, 20)로 이동된 것을 확인할 수 있습니다.

참고 사항
MoveBufferArea() 메서드는 Windows 환경의 콘솔에서만 동작하며, 일부 운영체제나 리디렉션된 출력 환경에서는 PlatformNotSupportedException이 발생할 수 있습니다. 또한 매개변수 값이 화면 버퍼 범위를 벗어나면 ArgumentOutOfRangeException이 발생하므로, 좌표와 크기를 지정할 때 버퍼 크기를 고려해야 합니다.