프로젝트 생성, 자료형, 변수, 자료형 관련 함수

doyeon kim·2025년 1월 16일

C#

목록 보기
1/13

C#

MS사에서 java의 편의성과 C++의 속도를 동시에 만족시키기 위해 개발한 언어

프로젝트 생성

실행 시 출력

해당 경로에 독자적으로 실행할 수 있는 확장자인 .exe 형태로 저장됨

실행화면

Console.ReadLine 없이 실행하면 콘솔 창이 바로 닫힘
=> 문자열 출력 이후로 명령이 즉시 종료되기 때문


주석(Visual Studio)

// :  한 줄 주석
/*
	여러 줄 주석
*/

// 
//
//	한 줄 주석 여러개 : 범위 드래그 후 ctrl + k + c,  ctrl + k + u 로 해제

자료형

char : 1 byte
int : 4 byte
float : 4byte
long : 8byte
String : 가변

자료형을 나누는 이유 : ram 의 저장공간을 효율적으로 사용하기 위해

자료형 변환

string val1 = "123";
int val2 = int.Parse(val1); => string 에서 int로
float val3 = float.Parse(val1); => string 에서 float로
string val4 = val2.ToString(); => int로 에서 string로

float f = 12.3f;
int n = (int)f; => 강제 형변환(float => int)

변수

값을 보관하는 장소

  • 변수는 반드시 타입과 함께 선언한 뒤 사용해야 한다.
    ex) int a; string str; (o), b = 1; st = "abc" (x)

변수의 종류

  • 멤버 변수(인스턴스 변수 & 스태틱 변수) : 클래스에서 변수 선언

    -> 프로그램 시작 시 할당, 프로그램 종료 시 해제

  • 지역 변수 : 메서드에서 변수 선언

    -> 함수 호출 시 할당, 함수 return 시 해제

예제(동명이인)

 static void Main(string[] args) 
 {
 	int a = 1;
    Console.WriteLine($"a : {a}");
 	Funtc(a);
 	Console.WriteLine($"a : {a}");
 }
 static void Func(int p_a)
 {
 	a = 2;
 }
 
 출력
 1
 1

Func 의 a 와 main 에서의 a는 동명이인( main 에서는 멤버변수, Func 에서는 지역변수)
-> Func 함수를 적용해도 main 에서의 a 는 바뀌지 않는다.

변수 선언

int a = 0;
int 123a = 0 => 불가(앞에 숫자 위치 불가능)
int +a = 0 => 불가(앞에 부호 위치 불가능)
int a123 = 0 => 가능
int a+12 = 0 => 불가능
int a_123 = 0 => 가능

최댓값 & 최솟값

 byte bb = byte.MaxValue;
 long lmax = long.MaxValue;
 int min = int.MinValue;
 

위와 같은 방식으로 각 자료형의 최댓값이나 최솟값을 이용할 수 있다.
MaxValue 에 커서를 놓고 f12(정의로 이동) 을 하면 아래와 같이 미리 선언된 값을 확인할 수 있다.


오버플로우

int max = int.MaxValue;
Console.WriteLine(max + 1);

최댓값에서 + 1 시 맨 앞에 부호 비트 바뀌면서 최솟값인 -2147483648 출력

**단 float의 경우 최댓값 + 1 시 inf 값인 3.402823E+38 출력


연산자

조건 연산자

int a = 30;
string istrue = a == 31 ? "30이 맞습니다" : "30이 아닙니다";
Console.WriteLine(istrue);

=> 30이 아닙니다.

비트 연산자

 int a = 2 << 3;
int b = 2 >> 3;
Console.WriteLine(a);
Console.WriteLine(b);

=> 16(왼쪽으로 비트 3칸 이동)
=> 0 (오른쪽으로 이동해서 범위 벗어남)

 int a = 0b001 | 0b010; // 앞에 0b는 뒤에 수가 2진수라는 표기 
int b = 0b001 & 0b010;
Console.WriteLine(a);
Console.WriteLine(b);

=> 3 (각 비트끼리 or 연산)
=> 0 (각 비트끼리 and 연산)

 int a = 1;
Console.WriteLine(~a);

=> -2 (각 비트들을 전부 not연산)

int a = 0b1001 ^ 0b0001;
Console.WriteLine(a);

=> 8(각 비트들끼리 전부 XOR 연산)


String 함수


int 함수

0개의 댓글