์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.


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 Framework ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. Visual Basic 6.0์—์„œ ํŒŒ์ƒ๋˜์—ˆ์ง€๋งŒ ์ฐจ์ด์ ๋„ ๋งŽ๋‹ค. ๋•Œ๋ฌธ์— Visual Basic 6.0์„ ์“ฐ๋˜ ์œ ์ €๋“ค์ด ์ƒˆ๋กœ์šด ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋กœ ๋„˜์–ด๊ฐ€๊ธฐ์— ๊ฑฐ๋ถ€๊ฐ์ด ๋งŽ์•„ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์ง€ ์•Š์•˜๋‹ค. ๋˜ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋ผ์„œ ์ ˆ์ฐจ ์ง€ํ–ฅ์ธ VB 6.0 ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ VB.NET๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์•„ ์•„์˜ˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฝ”๋”ฉํ•ด์•ผ ํ•œ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋„ ์ด ๋ฌธ์ œ๋ฅผ ๋ชฐ๋ž๋˜ ๊ฑด ์•„๋‹ˆ์—ˆ๊ธฐ์— Visual Studio 2008๊นŒ์ง€๋Š” VB 6.0 ๋ณ€ํ™˜๊ธฐ๋ฅผ ํฌํ•จํ–ˆ์œผ๋‚˜ ์™„์ „ํžˆ 1:1๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ์—ˆ๊ณ , Visual Studio 2010๋ถ€ํ„ฐ๋Š” ๋ณ€ํ™˜๊ธฐ๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ VB 6.0 ์ง€์›์ด ์ค‘๋‹จ๋˜๊ณ  ์ตœ์‹  ์šด์˜์ฒด์ œ๋กœ ๊ฐ€๋ฉด์„œ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์ด ๋งŽ์•„์ง€๊ณ , ๊ฐ•๋ ฅํ•ด์ง„ ์ƒˆ๋กœ์šด ํ™•์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ์ปจํŠธ๋กค๋„ ๊ฐœ์„ ๋˜๋Š” ๋“ฑ ์ƒ๋‹นํ•œ ๋ฐœ์ „์„ ๋ณด์—ฌ ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์ด VB.NET์œผ๋กœ ๋„˜์–ด์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค.[1]

๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋‚˜ ๋‹ท๋„ท ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋˜๋Š” ๋ชจ๋…ธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜๋Š” ๋Œ€์•ˆ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ƒคํ”„๋””๋ฒจ๋กญ ๊ฐ™์€ ๊ฒƒ๋„ ์žˆ๋‹ค.

.NET Framework ๊ธฐ๋ฐ˜์ด์ง€๋งŒ C#์ด๋ผ๋Š” ๊ทธ์•ผ๋ง๋กœ .NET Framework๋ฅผ ์œ„ํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— C#์— ๋น„ํ•ด ์ธ์ง€๋„๋Š” ๋–จ์–ด์ง€๋Š”ํŽธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  VB.NET๊ณผ C#์€ ๊ฐ™์€ .NET Framework ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์‹ค์ƒ ๋ฌธ๋ฒ•๊ณผ ์ผ๋ถ€ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๋ฉด ๊ธฐ๋Šฅ์ ์œผ๋กœ๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†๊ธฐ๋„ ํ•˜๋‹ค.

2. ํŠน์ง•[ํŽธ์ง‘]

2.1. My Namespace(๋„ค์ž„์ŠคํŽ˜์ด์Šค)[ํŽธ์ง‘]

My Namespace๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ผ๊ณฑ ๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. (C#์—์„œ๋„ ์ง€์›ํ•˜์ง€๋งŒ ์• ์ดˆ์— VB.NET์— ๋งž๊ฒŒ ๊ฐœ๋ฐœ๋˜์–ด ์žˆ๋‹ค.)
์˜ค๋ธŒ์ ํŠธ๋ช…
๋ชฉ์ 
My.Computer
๋‹น์‹ ์˜ ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ ์ด๋ฆ„, ๋ฉ”๋ชจ๋ฆฌ, ์‹œ๊ฐ„, ๋„คํŠธ์›Œํฌ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ.
My.Application
ํ˜„์žฌ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰๊ฒฝ๋กœ, ์–ด์…ˆ๋ธ”๋ฆฌ ์ •๋ณด (์ด๋ฆ„์ด๋‚˜ ๋ฒ„์ „ ๊ฐ™์€ ๊ฒƒ) ๊ทธ๋ฆฌ๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์„ ์ œ๊ณตํ•จ.
My.User
์œˆ๋„์šฐ์— ํ•ด๋‹น๋˜์–ด ์žˆ๋Š” ์ด๋ฆ„ ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ€์ ธ์˜ด. ๋˜, ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์—ญํ• ์— ์†ํ•˜๋Š”์ง€๋„ ํ™•์ธ ๊ฐ€๋Šฅํ•จ.
My.Forms
ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” ๋ชจ๋“  ํผ์˜ ์ฐธ์กฐ๋ฅผ ์ œ๊ณตํ•จ.
My.WebServices
์›น ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์คŒ.
My.Settings
์ฝ๊ฑฐ๋‚˜ ์ €์žฅํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ ์„ค์ •์ด ๊ฐ€๋Šฅ
My.Resources
ํ˜„์žฌ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ์ค‘์ธ ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Œ

2.2. IsNot ์—ฐ์‚ฐ์ž[ํŽธ์ง‘]

If Not A = B Then๋ฅผ If 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์—์„œ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ด„ํ˜ธ๋Š” ์–ด๋””์— ๋Œ€์ž…ํ•  ๋•Œ ๋“ฑ์—๋งŒ ์‚ฌ์šฉํ–ˆ๋‹ค. ์˜คํžˆ๋ ค ํ˜ธ์ถœํ•  ์‹œ ๊ด„ํ˜ธ๋ฅผ ์“ธ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋‹ค๋งŒ ์•„๋‹Œ ๊ฒฝ์šฐ๋„ ๊ฐ€๋” ์žˆ๋‹ค.[2] ๊ทธ๋Ÿฌ๋‚˜ 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 ๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ๋Š” ์ž๋™์œผ๋กœ ๊ด„ํ˜ธ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฏ€๋กœ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค. 2008 ๊ธฐ์ค€ 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๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•

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 ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ๋กœ http://converter.telerik.com/์—์„œ ๋‘ ์–ธ์–ด๊ฐ„ ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
[1] ๋‹ค๋งŒ VB 6.0์ด ์™„์ „ํžˆ ์—†์–ด์ง„๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ, Microsoft Office์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ VB 6.0์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ VBA์ด๋‹ค. ๋‹น์—ฐํžˆ VB.NET์™€ ํ˜ธํ™˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.
[2] Shell ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœํ•  ๋•Œ ๊ด„ํ˜ธ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ๋ง๊ฑฐ๋‚˜ ์ž‘๋™ํ•œ๋‹ค.