Visual Basic과 C#을 사용한 프로그래밍 비교
업데이트: 2007년 11월
Visual Basic 또는 C#을 사용하여 Visual Studio Tools for Office 솔루션을 만들 수 있습니다. Microsoft Office 개체 모델은 Microsoft VBA(Visual Basic for Applications)와 함께 사용하도록 디자인되었으므로 Visual Basic 개발자는 Microsoft Office 응용 프로그램에서 노출하는 개체를 손쉽게 사용할 수 있습니다. C#을 사용하는 개발자의 경우에는 Microsoft Office 개체 모델을 사용하는 것이 이처럼 간단하지는 않습니다. Office 개발과 Visual Basic 및 C#으로 작성된 관리 코드 간에는 기본 프로그래밍 기능 면에서 몇 가지 차이점도 있습니다.
Visual Basic과 C#의 주요 차이점
다음 표에서는 Office 개발 시 Visual Basic과 C#의 주요 차이점을 보여 줍니다.
기능 |
설명 |
Visual Basic 지원 |
C# 지원 |
---|---|---|---|
선택적 매개 변수 |
많은 Microsoft Office 메서드에는 메서드를 호출할 때 반드시 전달하지 않아도 되는 매개 변수가 있습니다. 매개 변수의 값을 전달하지 않으면 기본값이 사용됩니다. |
Visual Basic에서는 선택적 매개 변수를 지원합니다. |
C#에서는 선택적 매개 변수를 지원하지 않으며, 모든 매개 변수에 값을 전달해야 합니다. 자세한 내용은 Office 솔루션의 선택적 매개 변수 이해를 참조하십시오. |
참조로 매개 변수 전달 |
대부분의 Microsoft Office 주 interop 어셈블리에 있는 선택적 매개 변수는 값으로 전달할 수 있습니다. 그러나 일부 주 interop 어셈블리에서는 참조 형식을 사용하는 선택적 매개 변수를 참조로 전달해야 합니다. 값 및 참조 형식 매개 변수에 대한 자세한 내용은 값 또는 참조로 인수 전달(Visual Basic의 경우) 및 매개 변수 전달(C# 프로그래밍 가이드)을 참조하십시오. |
매개 변수를 참조로 전달하는 데에는 추가적인 작업이 필요하지 않습니다. Visual Basic 컴파일러에서는 필요할 때 자동으로 매개 변수를 참조로 전달합니다. |
Word용 주 interop 어셈블리와 같은 일부 주 interop 어셈블리에서 참조 형식을 사용하는 선택적 매개 변수는 ref 키워드를 사용하여 전달해야 하며, 실제 값이 들어 있는 변수를 전달해야 합니다. |
매개 변수가 있는 속성 |
일부 속성은 매개 변수를 받으며 읽기 전용 함수처럼 동작합니다. |
Visual Basic에서는 매개 변수를 받는 속성을 지원합니다. |
C#에서는 매개 변수를 받는 속성 값을 검색하거나 설정하기 위한 get 및 set 접근자를 사용해야 합니다. |
런타임에 바인딩 |
런타임에 바인딩 과정에서는 디자인 타임에 변수를 개체 형식으로 캐스팅하는 것이 아니라 런타임에 개체의 속성을 확인해야 합니다. |
Visual Basic에서는 Option Strict 문이 Off로 설정되어 있을 경우 런타임에 바인딩을 수행할 수 있습니다. 자세한 내용은 Option Strict 문을 참조하십시오. |
C#에서는 런타임에 바인딩 작업을 직접 수행하지 않습니다. 그러나 System.Reflection 네임스페이스의 형식을 사용하여 지정한 형식의 사용 가능한 멤버를 확인하고 일종의 런타임에 바인딩 작업을 수행할 수 있습니다. |
배열 인덱스 |
Microsoft Office 응용 프로그램에서 컬렉션의 배열 하한은 1부터 시작하지만 Visual Basic과 Visual C#에서는 기본적으로 0부터 시작하는 배열을 사용합니다. 자세한 내용은 배열(C# 프로그래밍 가이드) 및 Visual Basic의 배열 개요을 참조하십시오. |
Microsoft Office 응용 프로그램의 개체 모델에서 컬렉션의 첫 번째 항목에 액세스하려면 인덱스 0이 아니라 1을 사용합니다. |
Microsoft Office 응용 프로그램의 개체 모델에서 컬렉션의 첫 번째 항목에 액세스하려면 인덱스 0이 아니라 1을 사용합니다. |
Office 개발과 관리 코드의 주요 차이점
다음 표에서는 Office 개발과 Visual Basic 또는 C#으로 작성된 관리 코드의 주요 차이점을 보여 줍니다.
기능 |
설명 |
Visual Basic 및 C# 지원 |
---|---|---|
배열 인덱스 |
Microsoft Office 응용 프로그램에서 컬렉션의 배열 하한은 1부터 시작하지만 Visual Basic과 Visual C#에서는 0부터 시작하는 배열을 사용합니다. 자세한 내용은 배열(C# 프로그래밍 가이드) 및 Visual Basic의 배열 개요을 참조하십시오. |
Microsoft Office 응용 프로그램의 개체 모델에서 컬렉션의 첫 번째 항목에 액세스하려면 인덱스 0이 아니라 1을 사용합니다. |
참고 항목
작업
방법: 주 Interop 어셈블리를 통한 Office 응용 프로그램 대상 선택
방법: Office 응용 프로그램에서 반환한 개체 캐스팅