MY MEMO
[C#] C# 기본 문법 - 1 본문
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 |