MSDN 에서 발췌했습니다.

언어간키워드비교

이항목에는언어키워드로요약할수있는일반프로그래밍작업이나열되어있습니다. 코드예제가필요한작업에대한자세한내용은코드예제를통한다양한언어의프로그래밍개념비교를참조하십시오.

용도
Visual Basic
C#
변수 선언
Dim 문(Visual Basic)
Public(Visual Basic)
Friend(Visual Basic)
Protected(Visual Basic)
Private(Visual Basic)
Shared(Visual Basic)
Static(Visual Basic) 1
선언자(키워드는 사용자 정의 형식 및 기본 제공 형식 포함)
명명된 상수 선언
Const
const
readonly
클래스의 새 인스턴스 만들기
New
new
새 개체 만들기
CreateObject()
new 
개체 변수에 개체 할당
=
=
함수/메서드는 값을 반환하지 않음
Sub 2
void
함수 또는 메서드 오버로드(Visual Basic: 프로시저 또는 메서드 오버로드)
Overloads
(이 경우 언어 키워드가 필요하지 않음)
현재 개체 참조
Me 3
this
현재 개체의 가상 메서드를 실제로 호출
MyClass
n/a
문자열에서 문자 검색
str(10), 여기서 str는 문자열
string
str[10], 여기서 str는 문자열
string
복합 데이터 형식(구조체) 선언
Structure
struct
class
interface
개체(생성자) 초기화
Sub New() 5
생성자 또는 시스템 기본 형식 생성자
클래스생성자
개체 직접 종료
n/a
n/a
가비지 수집에 의해 개체가 회수되기 전에 시스템에 의해 호출된 메서드7
Finalize(Visual Basic 6.0인 경우 Class_Terminate)
소멸자
선언되는 위치에서 변수 초기화
Dim x As Long = 5
Dim c As New Car(FuelTypeEnum.Gas)
// initialize to a value:
int x = 123;
// or use default constructor:
int x = new int();
함수 주소 가져오기
AddressOf(이 연산자는 대리자 인스턴스의 형태로 함수에 대한 참조 반환)
delegate
콜백
한 함수의 주소를 호출자를 다시 호출하는 다른 함수에 전달합니다. 예제를 보려면 방법: Visual Basic에서프로시저에다른프로시저전달을 참조하십시오.
delegate
개체가 비동기적으로 수정될 수 있음을 선언
n/a
volatile
변수를 강제로 명시적으로 선언
Option Explicit
n/a(모든 변수는 사용 전에 선언해야 함)
개체를 참조하지 않는 개체 변수의 테스트
obj Is Nothing
obj == null
개체를 참조하지 않는 개체 변수의 값
Nothing
null
데이터베이스 null 식의 테스트
IsDbNull
n/a
Variant 변수가 초기화되었는지 여부 테스트
n/a
n/a
기본 속성 정의
Default
인덱서

개체지향프로그래밍


Visual Basic
C#
기본 클래스 참조
MyBase
base
인터페이스 선언
인터페이스
interface
구현될 인터페이스 지정
Implements(문)
classC1 : I1
인터페이스
클래스 선언
Class
class
모듈 선언
Module 문
static class
클래스 또는 구조체의 부분 정의 선언
Partial(Visual Basic)
Partial
클래스가 상속될 수만 있도록 지정. 클래스의 인스턴스를 만들 수 없음
MustInherit
abstract
클래스가 상속될 수 없도록 지정
NotInheritable
sealed
열거 형식 선언
Enum <members> End Enum
enum
클래스 상수 선언
Const
const(필드 선언에 적용)
기본 클래스에서 클래스 파생
Inherits C2
class C1 : C2
class
메서드 또는 속성 재정의
Overrides
override
파생하는 클래스에서 구현되어야 하는 메서드 선언
MustOverride
abstract
재정의할 수 없는 메서드 선언
NotOverridable(메서드는 기본적으로 NotOverridable임)
sealed
가상 메서드나 속성 또는 속성 접근자 선언
Overridable
virtual
파생 클래스에서 기본 클래스 멤버 숨기기
숨김
new(C# 참조)
클래스 메서드에 대한 형식 안전 참조 선언
Delegate
delegate
변수에 해당 이벤트를 처리하려는 개체가 포함될 수 있도록 지정
WithEvents
(코드 쓰기 - 특정 키워드 없음)
이벤트 프로시저가 호출될 이벤트 지정
Handles(이벤트 프로시저는 명명 패턴에 의해 WithEvents 변수와 연결될 수 있음)
event += eventHandler;
여러 멤버에 액세스하기 위해 개체 식을 한 번 계산
With objExpr <.member><.member> End With
using 문(C# 참조)

예외처리


Visual Basic
C#
구조적 예외 처리
Try <시도>
Catch
<오류 처리>
Finally
<항상 실행>
End Try
Throw
try, catch, finally
throw
C++ 예외 처리
n/a
n/a

판단구조


Visual Basic
C#
판단 구조
(선택)
Select Case ..., Case, Case Else, End Select
switch
case
default
goto
break
판단 구조(if ... then)
If ... Then, ElseIf ... Then, Else, End If
if, else
루프 구조(조건부)
While, Do [While, Until] ..., Loop [While, Until]
do
while
continue
루프 구조
(반복)
For ..., [Exit For] , Next
For Each ..., [Exit For] , Next
for
foreach

배열


Visual Basic
C#
배열 선언
Dim a() As Long
int[] x = new int[5];
배열 초기화
Dim a() As Long = {3, 4, 5}
int[] x = new int[5] {1, 2, 3, 4, 5};
배열 다시 할당
Redim
n/a

클래스범위


Visual Basic
C#
프로젝트 또는 어셈블리 외부에서 볼 수 있음
Public
public
어셈블리 외부 또는 패키지 내부에서 볼 수 없음
Friend
internal
현재 또는 파생 클래스 내에서만 볼 수 있음
Protected(Visual Basic)
Protected
현재 어셈블리 또는 포함하는 클래스에서 파생된 형식으로 액세스가 제한됩니다.
Protected Friend
protected internal
액세스가능성수준
프로젝트 내부(중첩 클래스의 경우 포함 클래스 내부)에서만 볼 수 있음
Private
private

멤버범위


Visual Basic
C#
클래스, 프로젝트 및 모듈 외부에서 액세스할 수 있음
Public
public
클래스 외부, 프로젝트 또는 패키지 내에서 액세스할 수 있음
Friend
internal
현재 및 파생된 클래스에만 액세스할 수 있음
Protected
protected
클래스 또는 모듈 내에서만 액세스할 수 있음
Private
private
선언하는 클래스의 private 멤버에 함수 또는 다른 클래스에서 액세스할 수 있도록 지정
n/a
friend
어셈블리 내에서 보호되며 다른 어셈블리에 대해 private임
n/a
n/a
현재 어셈블리 또는 포함하는 클래스에서 파생된 형식으로 액세스가 제한됨
Protected Friend
protected internal
액세스가능성수준

기타수명


Visual Basic
C#
프로시저의 지역 변수 유지
Static 11
static(C# 참조)
클래스의 모든 인스턴스에 의해 공유
Shared
static

기타


Visual Basic
C#
주석 코드
'
Rem
//, /* */ 주석이여러줄인경우
/// XML 주석인경우
대/소문자 구분?
아니요

Windows API 호출
Declare <API>
Platform Invoke 사용
이벤트 선언 및 발생
Event
RaiseEvent
event
스레딩 기본 형식
SyncLock
lock
이동(분기)
Goto
goto

1 Visual Basic에서 Static은프로시저내에서만변수를선언하기위해단독으로사용될수있습니다(: Static x As Long).
2 Visual Basic
에서 Sub 키워드로선언한프로시저는값을반환할수없습니다. 프로시저가값을반환하게될경우 Function 키워드로해당프로시저를선언해야합니다.
3 Visual Basic
에서 Me는컴파일타임에확인되지않으므로속성또는메서드의반환값으로사용할수있습니다.
4 JScript
에서 substr 함수는계속지원되지만문자열내의문자에액세스하는방법으로더이상선호되지않습니다. 문자열의특정위치에있는문자에액세스하는가장효율적인방법은괄호를사용하는것입니다. 예를들어, str문자열의 10번째문자에액세스하려면str[10]을사용합니다.
5 Visual Basic
에서 .NET Framework System.Object에서파생된클래스의생성자는항상 New로명명됩니다.
6 JScript
에서생성자에대해서는오버로드가허용되지않습니다.
7
일반적으로이러한메서드의코드는가비지수집기가자동으로해제하지않는시스템리소스를사용가능하게합니다.
8 C++
에서추상클래스는적어도하나의순수가상멤버를포함합니다.
9 JScript
에는 Visual Basic에서사용하는것과같이선행마침표가없습니다. 변수를속성으로잘못파악하거나속성을변수로잘못파악할수있기때문에이기능은혼동하기쉽습니다. 또한 with 문은느린코드를생성합니다.
10 JScript
에서이것은배열을다시할당하지않고 "증가"시키지도않습니다. JScript 배열(형식 Array로선언)은항상간격이넓고동적입니다. 네이티브배열(System.Array또는type[]으로선언)은동적이지않습니다.
11 Visual Basic
에서, 공유되지않는클래스메서드의정적지역변수는다른언어의경우처럼단일복사본을공유하지않고클래스인스턴스단위로저장됩니다. Static을사용하여변수를선언하면해당변수가범위를유실했다가다시확보하는경우에도변수값이보존됩니다.




행복한 고수되십시요...


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

반응형

+ Recent posts