자바와 C#의 프로그램 구조 차이를 알아보자
(자바는 안다고 가정한다.)
namespace는 자바의 package 역할을 한다.
자바는 첫줄에 package를 선언하지만, C#은 namespace 키워드를 사용하고 블럭으로 묶는다. namespace는 한 파일 안에 여러개 만들 수도 있고 블록구조로도 만들 수 있다. namespace가 다르면 같은 이름의 클래스를 만들 수 있다.
클래스명과 파일명이 달라도 빌드 오류가 발생하지 않는다.
참조
자바는 다른 클래스를 참조할 때 import 문을 쓰지만
C#은 using을 쓴다. using 키워드는 namespace 블록 내부에서도 사용 가능하고 별칭도 지정할 수 있다.
주석은 자바랑 동일하게 //, /* */
자료형
자료형
|
형식
|
범위
|
크기
|
sbyte
|
System.SByte
|
-128 ~ 127
|
부호 있는 8 bit 정수
|
byte
|
System.Byte
|
0 ~ 255
|
부호 없는 8 bit 정수
|
short
|
System.Int16
|
-32,768 ~ 32,767
|
부호 있는 16 bit 정수
|
ushort
|
System.UInt16
|
0 ~ 65,535
|
부호 없는 16 bit 정수
|
int
|
System.Int32
|
-2,147,483,648 ~ 2,147,483,647
|
부호 있는 32 bit 정수
|
uint
|
System.UInt32
|
0 ~ 4,294,967,295
|
부호 없는 32 bit 정수
|
long
|
System.Int64
|
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,808
|
부호 있는 64 bit 정수
|
ulong
|
System.UInt64
|
0 ~ 18,446,744,073,709,551,615
|
부호 없는 64 bit 정수
|
float
|
System.Single
|
±1.5e-45 ~ ±3.4e38
|
4 byte
|
double
|
System.Double
|
±5.0e-324 ~ ±1.7e308
|
8 byte
|
decimal
|
System.Decimal
|
±1.0 × 10−28 ±7.9 × 1028
|
16 byte
|
char
|
System.Char
|
U+0000 ~ U+ffff
|
유니코드 16 bit 문자
|
string
|
System.String
|
|
유니코드 문자열
|
bool
|
System.Boolean
|
|
4 byte
|
출처: https://hackersstudy.tistory.com/8 [공대인들이 직접쓰는 컴퓨터공부방:티스토리]
자바에 있는 자료형에 unsigned 자료형과 128비트 부동 소수 형식을 추가로 지원한다.
unsigned는 정수형 앞에 u를 붙여 사용한다.
자바는 primitive type이 있고 각각의 wrapper class가 존재하지만,
C#의 모든 원시 자료형은 System namespace의 객체이고 각각 별칭이 존재한다.
자바 boolean은 C#에서 bool이다.
상수
자바의 final -> const, readonly로 세분화 되어있다.
const : compile-time constant, primitive type만 선언 가능
readonly : runtime constant, 실행시 처음 정해진 값
enum
'발전 > C#' 카테고리의 다른 글
[C#] 기초 및 자바와 다른 점 (3) | 연산자 오버로딩(오버로드), ref, out 키워드 (0) | 2022.06.16 |
---|---|
[C#] 기초 및 자바와 다른 점 (1) (0) | 2022.06.16 |