최근 수정 시각 : 2025-04-16 17:12:47

Visual Basic .NET

VB.NET에서 넘어옴
[[프로그래밍 언어|'''프로그래밍 언어
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 목록 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록
AActionScript · Ada · Agda · ALGOL · Apex · APL · awk
BBASIC · Befunge · Brainfuck
CC · C# · C++ · Carbon · Chef · Clojure · COBOL · CoffeeScript · Coq · Crystal
DD · Dart
EElixir · Elm · emojicode · Erlang · ETA
FF# · Forth · Fortran
GGNU Octave · Go · Groovy
HHaskell · HolyC · HQ9+ · HRON
I
JJava · JavaScript · Julia
KKotlin · Krait
LLean · LISP · Lua
MMalbolge · MATLAB · Max · Mojo · Moonlight
NNim · Nix
OOberon · Objective-C · OCaml · Ook!
PPascal · Perl · PHP · Processing · Prolog · Python
QQ#
RR · Racket · Raku · ReasonML · Ruby · Rust
SScala · Scheme · Scratch · sed · Shakespeare · Shell Script · Smalltalk · Swift
TTypeScript
UUdon
VVisual Basic · Visual Basic .NET · Visual Basic for Applications · vvvv
WWave · Whitespace
X
Y
ZZenScript · Zig
한글누리 · · 씨앗 · 아희 · 약속 · 엄랭 · 엔트리 · 창조}}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 순위 ]
{{{#!wiki style="margin: -5px -1px -10px"
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px -1px"
<tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++ }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ Stack Overflow 2024 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#ffa500><colcolor=#fff> 2024년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어
1 JavaScript <colbgcolor=#ffa500><colcolor=#fff> 14 Rust
2 HTML & CSS 15 Kotlin
3 Python 16 Lua
4 SQL 17 Dart
5 TypeScript 18 어셈블리어
6 Bash 19 Ruby
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Visual Basic
10 C 23 MATLAB
11 PHP 24 VBA
12 PowerShell 25 Groovy
13 Go }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ TIOBE 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#2777c2><colcolor=#fff> 2025년 2월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=#2777c2><colcolor=#fff> 11 Fortran
2 C++ 12 Scratch
3 Java 13 Rust
4 C 14 PHP
5 C# 15 R
6 JavaScript 16 MATLAB
7 SQL 17 Assembly language
8 Go 18 COBOL
9 Delphi / Object Pascal 19 Ruby
10 Visual Basic 20 Prolog }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ PYPL 2025 ]
{{{#!wiki style="margin: -5px -1px -10px"
<colbgcolor=green><colcolor=#fff> 2025년 3월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=green><colcolor=#fff> 11 Swift
2 Java 12 Go
3 JavaScript 13 Kotlin
4 C/C++ 14 MATLAB
5 C# 15 Ada
6 R 16 Dart
7 PHP 17 Ruby
8 Rust 18 Lua
9 TypeScript 19 PowerShell
10 Objective-C 20 VBA }}}}}}}}}}}} }}}}}}}}}}}}
분류:프로그래밍 언어 · 프로그래밍 언어 목록 · 언어별 예제 · 틀:프로그래밍 언어 문법

파일:Microsoft 로고.svg파일:Microsoft 로고 화이트.svg
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#393939,#737373><colcolor=#fff>제품군
하드​웨어Surface · Xbox · HoloLens · PixelSense · Zune · Pluton · IVAS
소프트​웨어Windows · Office · Edge · Media Player · Hyper-V · Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft Store · Xbox App · PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns · Clipchamp
서비스Microsoft Azure · OneDrive · Microsoft Copilot · Bing · LinkedIn · Microsoft Docs · Skype · MSN · 정품인증 · Xbox Game Pass · Xbox Cloud Gaming · Xbox network · SwiftKey
관련 기술ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템(FAT · NTFS · ReFS) · 언어 서버 프로토콜 · MFC · .NET(.NET Core · .NET Standard · C# · F# · Visual Basic .NET · Q#) · 라이브러리(Windows Forms · WPF · UWP · Xamarin · .NET MAUI · ASP.NET · ML.NET · XNA) · OLE · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime(UWP · WinUI) · WMA · WMV · 하복 엔진 · SAMI · PowerShell · Windows Modern Standby
산하 계열사 및 사업부GitHub · .NET Foundation · Microsoft Gaming · LinkedIn
관련 인물빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 마이크 이바라(퇴사)
사티아 나델라 · 필 스펜서 · 브래드 스미스
기타제니맥스 미디어 인수 · 액티비전 블리자드 인수 · 시작 메뉴 · 빌 게이츠의 굴욕
관련 틀365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군}}}}}}}}}

파일:sdfgwreg.png
1. 개요2. 특징
2.1. My Namespace(네임스페이스)2.2. IsNot 연산자2.3. WithEvent 선언자2.4. WPF의 지원
3. Visual Basic 6.0와의 차이점
3.1. 메서드 괄호의 차이3.2. For문 문법 차이3.3. 디자인에서의 컨트롤 배열 미지원
4. VB.NET과 C#의 유사점
4.1. 같은 라이브러리 사용4.2. VB.NET ↔ C# 변환

1. 개요

Module Hello

    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub

End Module

마이크로소프트C#과 함께 출시한 .NET 기반의 객체 지향 프로그래밍 언어.

비주얼 스튜디오JetBrains Rider, dotnet cli를 통해 개발이 가능하다.

.NET 기반이지만 C#이라는 그야말로 .NET을 위하여 새롭게 만들어진 언어가 존재하기 때문에 C#에 비해 인지도는 떨어지는 편이다. 하지만 .NET 언어중 C# 다음으로 수요가 많다. 그리고 VB.NET과 C#은 같은 .NET 라이브러리를 사용하기 때문에 사실상 문법과 일부 런타임 라이브러리를 제외하면 기능적으로는 큰 차이가 없기도 하다.[1]

VB 6.0의 후속작이기 때문에 버전은 7.0부터 시작한다.

2. 특징

2.1. My Namespace(네임스페이스)

My Namespace는 응용 프로그램에 일곱 가지의 기능을 제공한다.
오브젝트명 목적
My.Computer 당신의 컴퓨터에 대한 이름, 메모리, 시간, 네트워크 등의 정보를 제공함.
My.Application 현재 응용프로그램의 실행경로, 어셈블리 정보 (이름이나 버전 같은 것) 그리고 환경 변수들을 제공함.
My.User 윈도우에 해당되어 있는 이름 같은 것을 가져옴. 또, 사용자가 특정 역할에 속하는지도 확인 가능함.
My.Forms 프로젝트에 있는 모든 폼의 참조를 제공함.
My.WebServices 웹 서비스에서 사용되는 프록시 서버에 대한 접근 권한을 줌.
My.Settings 읽거나 저장하는 응용 프로그램 구성 설정이 가능
My.Resources 현재 응용프로그램에서 사용중인 리소스 정보를 읽을 수 있음

2.2. IsNot 연산자

If Not A = B ThenIf A IsNot B Then 으로 사용하는 연산자다.
If Not A = B Then의 의미: A = B를 검사 후 그 검사 결과가 A = B의 반대 되는 결과일 시에만 If문 처리
If A IsNot B Then의 의미: A가 B가 아닐 경우에만 If문 처리 (같은 내용이지만 가독성이 더 좋아졌다.)

두 개의 처리 결과는 같다.

2.3. WithEvent 선언자

  • WithEvents를 사용하지 않으면 AddHandler를 사용해야 하지만 WithEvents를 사용 시 Handles 뒤에 (변수이름).(이벤트명) 형식으로 사용이 가능하다

2.4. WPF의 지원

  • C#과 동일하게 WPF 프로젝트를 만들어서 사용할 수 있다.

3. Visual Basic 6.0와의 차이점

3.1. 메서드 괄호의 차이

Visual Basic 6.0에서는 메서드를 괄호는 어디에 대입할 때 등에만 사용했다. 오히려 호출할 시 괄호를 쓸 경우 오류가 발생한다. 그러나 VB.NET부터는 항상 메서드는 괄호로 묶게 되어 있다. Python 2에서 print 문을 쓸 때 텍스트를 괄호로 묶지 않아도 됐지만 Python 3에서는 괄호로 묶어야 하게 된 것과 비슷한 경우.

단적인 예로 Visual Basic 6.0에서 MsgBox는 다음과 같이 사용한다.
    MsgBox "Hello World!"


VB.NET의 경우는
    MsgBox("Hello World!")

와 같이 사용한다. 괄호를 넣지 않을 시엔 메서드는 괄호로 묶어야 합니다. 라는 오류가 뜨며 매개 변수를(위에선 "Hello World!") 전달하지 않을 때에도 괄호를 반드시 넣어야 한다. 예를 들어 Randomize()가 있다.

다만 Visual Studio 2017 버전 기준으로는 자동으로 괄호를 삽입하므로 큰 문제는 없다. 6.0 모양으로 입력 시 Enter 키를 누르면 자동으로 괄호가 들어가진다.

3.2. For문 문법 차이

둘째로는 For문의 차이이다. Visual Basic 6.0에서의 For문에는 For문 내에서 형식을 지정하며 선언이 불가능하다.

Module Hello
    Sub Main()
        For i = 1 to 10 step 1
            Console.Writeline(i)
        Next
    End Sub
End Module


그러나 VB.NET에서는 형식을 지정하며 선언이 가능하다.

Module Hello
    Sub Main()
        For i As Integer = 1 to 10 step 1
            Console.Writeline(i)
        Next
    End Sub
End Module

물론 그 역으로 VB.NET에서 Visual Basic 6.0과 동일한 방법으로 For 문을 정의할 수 있다.

3.3. 디자인에서의 컨트롤 배열 미지원

기존 Visual Basic 6.0에서는 컨트롤 배열이라는 것을 사용해서 폼의 컨트롤을 관리할 수 있었다. 컨트롤 배열로 이벤트 처리기 공유, 컨트롤 그룹 반복 및 런타임에 컨트롤 추가에 대한 기능을 제공했었는데 VB.NET부터는 지원하지 않는다. 대신 Handles 뒤에 , (콤마/쉼표)를 이용해서 여러 개의 컨트롤에 이벤트 처리 메서드를 공유할 수 있게 되었다.

VB.NET에서 다음과 같이 사용한다.
Private Sub MixedControls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, CheckBox1.Click

4. VB.NET과 C#의 유사점

4.1. 같은 라이브러리 사용

Visual Basic.NET에서 Hello World를 띄우는 방법

Module Hello

    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub

End Module


C#에서 Hello World를 띄우는 방법

#!syntax csharp
using System;
public class Hello2
{
   public static void Main()
   {
      Console.WriteLine("Hello, World!");
   }
}

4.2. VB.NET ↔ C# 변환

VB.NET과 C#은 둘 다 같은 .NET 프레임워크 기반이기 때문에 거의 완벽하게 C#과 VB.NET 코드를 변환할 수 있다. 실제로 https://converter.telerik.com/에서 두 언어간 코드를 변환하는 서비스를 제공한다.


[1] 두 언어 모두 공통 중간 언어(CIL)로 번역되어 사용되기에 일부 요소를 제외하고는 속도에서 차이가 별로 없다.