2015년 2월 8일 일요일

뇌자극 C# 5.0 1~3강까지 요약

1강 프로그래밍의 역사 + 비쥬얼스튜디오 2013 설치


나 같은 경우는 vs2013 express를 쓰고 있다.
커뮤니티가 완전 무료로 뿌려졌지만 볼렌드만 한글화가 되어 있어서
아직은 이걸 쓰고 있다.
vs 2013 얻으러가기

2강 프로그램 소스의 대략적인 구조


vs로 새프로젝트를 만들면 이런 구조를 띈다

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 네임스페이스명
{
    class 클래스명
    {
        static void Main(string[] args)
        {
        }
    }
}

-메소드 : C언어의 함수와 같은 기능, 객체지향프로그래밍에서는 모든 것이 객체고, 
함수는 객체의 일부다. 객체지향 프로그래밍에서의 함수 역할

-static : 한정자 중 하나, 프로그램이 처음 구동될 때 메모리에 할당되는 특징.
따로 객체를 만들 필요 없이 바로 사용 가능(대표적인 것이 Main 프로그램)

-CLR : 자바의 가상머신과 비슷한 기능. 서로 다른 언어의 소스코드를 IL이라는 중간언어로 작성된 중간 코드를 읽어 들이고, OS가 이애할 네이티브 코드로 컴파일하는 프로그램
언어간 상속지원, COM과의 상호 운영성 지원, 자동 메모리 관리 기능

3강 데이터 형식 


-값 형식/참조 형식/복합 데이터 형식
-값 형식 : 스택 영역에 데이터 저장, 중괄호 "}"을 만나면 메모리에서 자동 제거
-참조 형식 : 힙 영역에 데이터 저장, 참조를 계속 하면 데이터 유지, 참조가 0이 되면 가비지 컬렉터가 수거하고 메모리에서 제거, 
-복합 데이터 형식 : 클래스, 구조체, 배열 같은 형식

-기본 데이터 형식들-


정수형식

byte - 부호 없는 정수(1바이트)
sbyte - signed byte 정수(1바이트)
short - 정수(2바이트)
ushort - 부호 없는 정수(2바이트)
int - 정수 (4바이트)
uint - 부호 없는 정수(4바이트)
long - 정수(8바이트)
ulong - 정수(8바이트)
char - 유니코드 문자(2바이트)

부동 소수점 형식

float - 단일 정밀도 부동 소수점 형식(4바이트)
double - 복수 정밀도 부동 소수점 형식(8바이트)
decimal - 29자리 데이터를 표현할 수 있는 소수 형식(16바이트)

문자/문자열 형식

char - 단일 문자 형식('를 사용)
string - 복수 문자 형식("를 사용)

논리 형식

bool - 논리형식(1바이트)

Object 형식

모든 형식을 다룰수 있는 데이터 형식, 박싱/언박싱을 시용해서 형식을 처리함

박싱/언박싱

Object 형식은 참조 형식이라 힙에 데이터 할당함
Object 형식은 값 형식의 데이터 -> 힙에 할당하기 위해 박싱 기능 제공

박싱- 데이터를 박스로 감싸고, 박스는 힙에 저장하고, 박스의 주소는 스택에 저장
언박싱 - 박싱되어 있는 값을 꺼내 -> 값 형식 변수에 저장하는 과정

문자열 <-> 숫자 변환

문자열 -> 숫자로 변환 
Parse()메소스 사용

예) 
int a = int.parse("12345");
a 는 숫자 12345가 저장.

숫자 -> 문자열로 변환
ToString()메소드 사용

예)
int c = 12345;
string d = c.ToString();
d에는 문자열 12345 가 저장.

상수

상수란? 변하지 않는 값 고정 값.

const 자료형 상수명 = 값;

열거형

여러개의 상수를 정리한 형식

enum 열거형식명{상수1, 상수2, 상수3, ....}

그냥 사용시 상수1 부터 0으로 시작해서 +1씩 증가해서 사용가능

프로그래머가 원하는 값을 직접 대입도 가능(대입 후 미할당 부분은 +1)
enum 열거형식명{상수1 = 값1, 상수2 = 값2, 상수3 = 값3, .....}

예)
enum Dialog{Yes = 10, No, Cancel, Confirm = 50, OK}

값 : 10, 11, 12, 50, 51

Nullable 형식

값 형식에 한해서만 사용 가능. 비어있는 변수를 만들 때 사용

예)
int? a = null;

Console.WriteLine(a.HasValue); //a는 null 이므로 False 출력

a = 37;
Console.WriteLine(a.HasValue); //a는 37를 가지고 있어서 true를 출력
Consloe.WriteLine(a.Value); //37 출력

var 형식 

명시적 형식 대신 컴파일러가 자동으로 해당 변수의 형식을 지정해주는 형식
반드시 선언과 동시에 초기화를 해줘야 함.
초기화 값으로 컴파일러가 데이터 형식 결정
var는 지역 변수로만 사용 가능(C#은 전역 변수 허용 안함)

var a = 3; //a는 int형식
var b = "Hi"; //b는 string형식

제일 좋은 것은 "뇌를 자극하는 C# 5.0 프로그래밍"를 구입해서 직접 공부하는 것이 좋다.

뇌자극 C# 5.0 공부를 시작했다

C#은 나에게 가장 익숙한 언어이기에 이 곳에 자세하게 기재하진 않을 것이다.

생소했던 부분이나 기억해야 할 부분만 기록하려고 한다.

기본적인 문법은 다른 언어와 거의 비슷하기에 후딱 넘어갈수 있다.

하루만에 22강 중 6강까지 봤다.

일단 6강까지 요약 정리해본다.