본문 바로가기
발전/C#

[C#] 기초 및 자바와 다른 점 (2) | 프로그램 구조, 자료형 상수

by babepro 2022. 6. 16.

자바와 C#의 프로그램 구조 차이를 알아보자

(자바는 안다고 가정한다.)

using System;
using Rectangle = CompSci.Graphics.Rectangle; // 별칭 지정
namespace Sample {
    public class SampleClass {
        public static void Main(string[] args) {
            string name = "Wilson";
            Console.WriteLine("Hello, " + name + "!");
        }
    }
    // 한 줄 주석
    /*
      여
      러
      줄
      주석
    */
}

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

enum Action {Start, Stop, Rewind, Forward};
enum Status {Flunk = 50, Pass = 70, Excel = 90};