다음을 통해 공유


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 응용 프로그램에서 반환한 개체 캐스팅

개념

Office 솔루션에서 코드 작성

Office 솔루션의 선택적 매개 변수 이해