주석
- 어플리케이션 코드에 대한 도움말이나 문서화 작업
- 단일 주석문 : //
- 구간 주석문 :
/*
주석내용
*/
- XML 주석문 : ///
-> 주석문 생성 : csc.exe 파일명.cs /doc:문서명.xml
에러종류
- 컴파일 에러
- 런타임 에러
예외처리 (Exception Handling)
- 어플리케이션에 에러가 발생했을때 처리할수 있는 코드를 준비
- 대부분 런타임 오류를 처리하고자 할때 사용
- try ~ catch
try{
Console.WriteLine("나눗셈의 결과는 {0}", i/j);
Console.WriteLine("나눗셈 성공");
}catch(Exception e){
// catch 의 가로안에 e는 catch 블럭안에서 사용해야 한다.
// 사용하지 않은경우 에러는 나지 않지만 경고가 뜸
// 블럭안에서 e를 블럭에서 사용하지 않는다면 생략에도 가능
// Console.WriteLine("0으로 나누려고 합니다.");
Console.WriteLine(e.Message);
}
기타
- ildasm.exe : 역어셈블러(C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\ildasm.exe)
- WinCV : 클래스 뷰어( C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\WinCV.exe)
데이터형식
- 데이터 타입(Data Type): 데이터 형태를 지정할 수 있게 하는것
- 데이터(Data) : 자료 그 자체. 상수
- 데이터 타입의 역할
* 데이터가 가질 자료형을 지정한다.
* 데이터가 가질 메모리 크기를 정한다.
* 변수를 생성한다.
- 값 형식(Value Type) & 참조형식 (Reference Type)
Stack managed Heap
- C#은 Strong-Type Language
-> 데이터타입을 나누는 기준은 크기가 정해져있느냐 정해져 있지 않느냐에 따라 다르다.
'가' -> char타입 : 크기가 고정 - > Value Types
"가나다..." -> string타입 : 크기가 일정치 않다, 사용자가 임의로 만들어서 사용
-> Reference Type
값형식
- Value Types : 내장형, 사용자 정의형
- 내장형 : int, float ...
- 사용자 정의형 : enum, struct
- 모든 값 형식의 변수는 값이 null 이면 안된다.
내장형 데이터 형식(Built-in Data Type)
- 기본 데이터 형식. 단순 데이터 형식
- C#에서의 내장형은 예약어 형식과 구조체 형식으로만 선언 가능
int i; & System.int32 i;
숫자형(Numeric Type)
- 숫자형태로 되어있는 각종 데이터 형식
- 정수형식, 소수점이 들어간 형식, 지수형식등...
문자형(Char)
- 문자를 가지는 데이터 형식
- 문자형 & 문자열 형식
- C#에서 문자형은 Unicode(2bytes)
Boolean 형식
- 논리형식
- 'true' or 'false' -> 0 이나 1로 대체하여 사용할수 없다.
System.Object
- C#에서는 내장형 데이터 형식도 객체이다
- 모든 데이터 형식은 System.Object로부터 상속된 객체이다.
* Equals() : 같은 객체인지 비교
* GetHashCode() : 객체의 해시코드 값을 리턴
* GetType() : 객체의 형 정보를 리턴
* ToString() : 객체의 이름을 문자열로 리턴
사용자정의 데이터 형식
enum 데이터 형식
- Enumeration 약어
- 열거형
- 단어를 정수값에 매핑할 수 있도록 한다.
- 일련의 공통된 값들의 집합을 가질때 사용
- 서로 다른 형식의 집합을 struct 사용
- enum에서 정의되지 않은 값을 사용하면 컴파일 에러
public enum Color{Red, Green, Blue};
// Color의 Red = 0, Green =1, Blue = 2 로 자동적으로 int형으로 번호가 매핑됨 -> 암시적
// public enum Color{Red=100, Green=200, Blue=300};
// -> 명시적으로 번호를 부여하여 사용할수 있음.
Color Color;
colorRed = Color.Red;
Console.WriteLine("{0}", colorRed); // 결과 Red
colorBlue = (Color)1;
Console.WriteLine("{0}", colorBlue ); // 결과 Blue
public enum Color1 {Red = 100, Green, Blue};
// 처음 값에면 번호를 매핑해주면 그다음부터는 첫번째값에서부터 자동증가한다.
// Red = 100, Green = 101, Blue = 102
public enum Color2 {Red, Green=100, Blue};
// Red = 0, Green = 100, Blue = 101
struct형식
- 여러가지 다른 형태의 값들을 가지는 형식
- 보통 간단한 데이터 형식들을 저장하기 위해 사용
struct Employee
{
public string firstName;
public string lastName;
public int age;
public int height;
public int weight;
}
static void structTest()
{
Employee manager;
manager.firstName = "홈";
manager.lastName = "길동";
manager.age = 50;
manager.height = 175;
manager.weight = 75;
Console.WriteLine("구조체 연습");
Console.WriteLine("신상정보출력 : manager");
Console.WriteLine("이름 : {0} {1}", manager.firstName, manager.lastName);
Console.WriteLine("나이 : {0}", manager.age);
Console.WriteLine("키 : {0}", manager.height);
Console.WriteLine("몸무개 : {0}\n\n", manager.weight);
}
특수문자 코드
\' - 작은따옴표
\" - 큰 따옴표
\\ - 역슬래쉬
\0 - 널
\a - alert
\b - 백스페이스
\f - 폼피드
\n - 개행(New Line)
\r - 첫칸 옮기기(Carrage Return)
\t - 수직탭
\v - 수평탭
\u숫자 - 유니코드 출력