MY MEMO

[C#] C# 기본 문법 - 1 본문

STUDYING/C#

[C#] C# 기본 문법 - 1

l_j_yeon 2018. 3. 22. 10:22

C   : 함수단위

C++ : 클래스


C#

: MS에서 독자적으로 만든 언어 / C,C++,JAVA에서 장점만 뽑음


1) 많은 라이브러리를 사용 -> 그래야 사람들이 많이 쓰니까

2) CLR(Common Language Runtime) : C#에서 작성한 코드를 실행하는 모듈


- Winform : Winform은 운영체제를 건들이는 것 -> 운영체제에게 이렇게 형식을 만들어주세요 라고 코딩을 하는 것!

따라서 C#은 운영체제를 건들이는 언어라고 할 수 있음


=> 맨처음 코딩된 내용을 파일(.exe)로 만듬 -> CLR에 준 후 OS에 맞게 재컴파일 -> OS가 실행할 수 있는 기계어 코드를 생성


- CTS (Common Type System) : 공통데이터 형식과 형식 정의

- CLS (Common Language System) : 공통 언어 사양 정의


- C#은 포인터를 거의 사용하지 않는다

이유)

1) 메모리 누수 -> 프로그래머가 항상 메모리를 관리할 수 없음

2) 객체 생성 new -> delete / free를 쓰지 않아도 괜찮음

=> Garbage Collector에서 관리!

=> 따라서 우리는 생성에만 집중한다!



<C# 데이터 형식> 


Cast 방법

: int num = 7;

 char numChar = (char)num;


Min, Max 값

: short.MinValue, num.MaxValue;


float는 정의할 때 숫자 뒤에 f를 붙여줘야 한다


\을 문자열 내에 사용해야 할 때

: @"C:\temp\test.txt" (앞에 골뱅이를 붙인당)

 "C:\\temp\\test.txt'


var 사용 조건

1. null 값 초기화, 매개변수 사용 불가능

2. 지역변수로 사용 -> 클래스 멤버로는 사용 불가능

3. 연속적으로 초기화 불가능



nullable 형

: null을 허용하지 않는 데이터형에 null 값을 허용


int? Var1;

bool? Var2 = null; // null이 가능


Value 존재 여부 확인

: Num1.HasValue


타입 변환


Boxing & UnBoxing


Boxing : 데이터형을 최상위 object 형으로 변환하여 heap 메모리에 저장

(포인터를 저장하는 것이 아닌 값만 저장)

int m = 123;

object obj = m;


UnBoxing : heap에 저장된 형식을 다시 원래 형식으로 변환

int n= (int)obj;


Console.ReadKey();

: 사용자가 눌린 키 한 문자 정보를 리턴하는 메서드


ConsoleKeyInfo

: 문자 이외에 Ctrl, Shift와 같은 키가 눌리는 것


: 대소문자 구별 방법


구조체


enum


+연산 예제


+) 0과 1로 True False를 나타낼 수 없다!!!(!!!!!!!)


is 연산자

: value is 형식 값 -> value가 형식값으로 변환할 수 있는지를 확인하는 것
return true/false;


as 연산자

: 형변환이 가능하면 형변환을 해서 넘겨주고 아니면 null을 넘김

null을 넘겨야 하기 때문에 nullable 변수여야 함!


결과형 = 참조형, 언박싱, 박싱 as 변환형;

return 결과형/null


string str2 = obj as string;

Console.WriteLine(str2);


?? 연산자

: C = A ?? B

A가 null이 아니면 C에 대입

A가 null이면 B에 대입


만약 C가 nullable 변수가 아님 & A가 null

그렇다면 B를 대입!


foreach 제어문


+) ArrayList List = new ArrayList();

List.add(1);


try~catch~finally

: try 문 안에서 생성한 변수는 try 문 밖에서 사용할 수 없다


throw

: 에러를 생성해서 일부러 보냄


다차원 배열

 

Array.Clear(array1,2,3);

2 : 시작하는 index 번호

3 : 개수! (3번째까지 모두 0으로 초기화 하겠다)

int[] nCloneArray = (int[])nArray1.Clone();

: 배열을 복사하는 함수

함수에 파라미터로 넘길때

void SetArray(int[,] arr)

void SetArray(int[] arr)


<파일 읽고 쓰기>


Stream : 파일, 네트워크 등에서 데이터를 바이트 단위로 읽고 쓰는 클래스

Stream Calss는 상위 클래스

- 상속 클래스에 FileStream, MemoryStream, NetworkStream, SqlFileStream 등이 있음


FileStream: 파일 입출력을 다루는 기본 클래스

byte[] 배열로 데이터를 읽거나 저장 -> 형변환이 필요함


StreamWriter/StreamReader + BinaryWriter/BinaryReader


String Split 함수

ex) String str = "데이터,데이터,";

string[] string_element = str.Split(new char[] {','});


Serialize : 한번에 파일을 읽고 쓰는 것


'STUDYING > C#' 카테고리의 다른 글

[C#] .NET FRAMEWORK - .net core  (0) 2018.03.23
[C#] C# 기본 문법 - 2  (0) 2018.03.22
[WPF] 기능 모음  (0) 2017.09.01
[WPF] Web Scraping  (0) 2017.09.01
[WPF] Sqlite 사용하기  (0) 2017.09.01
Comments