chap.8 인터페이스

2011. 2. 11. 00:38 from PROGRAMMING/C#.NET

chap.8 인터페이스

1. 인터페이스

 1.1 인터페이스

 1.2 인터페이스 선언

 1.3 인터페이스의 상속

2. 인터페이스 활용

 2.1 열거하기

 2.2 반복기

 2.3 깊은 복사

3. 메모리 관리

 3.1 가비지 컬렉터의 동작

 3.2 IDisposable

 

1. 개념

: 메서드의 목록만을 가지는 특별한 타입(추상클래스와 유사)

 

추상클래스 내에 추상클래스만 넣어놓은것 → 인터페이스

 

2. 특징(인터페이스와 추상클래스의 차이점)

-인터페이스에 선언된 메서드의 구현 강제. 인터페이스로부터 상속을 받는 클래스들은 인터페이스에 포함된 모든 메서드를 구현해야 함.

-모든 메서드를 구현해야 하므로 인터페이스에 소속된 데이터 원형들은 갯수가 많지 않다.

-반복되는 공정(제조업체)에서 주로 사용.(ex.처리의 방법은 다를 수 있으나 공정의 순서는 같을 때. 동일한 공정 순서 → 인터페이스 선언으로 통일, 달라지는 처리방법 → '구현부'만 다르게)

 

인터페이스에서 프로토타입만 존재하는 함수를 만드는 이유

: 프로그래밍에 일관성, 규칙성, 안정성 부여

 

3. 인터페이스 선언

키워드 interface로 선언. 대문자I로 시작하는 것이 관례(클래스와 구분 위해. 따라서 되도록 I로 시작하는 클래스 이름은 사용하지 않는다)

함수의 원형만 선언. 실제 구현은 파생클래스에서 상속받아 구현.

 

4. 인터페이스의 상속

■ 상속 : 구현 상속, 인터페이스 상속

구현 상속: 클래스들끼리 상속. 자식은 부모의 코드를 물려받아 그대로 사용하거나 재정의라는 방법을 통해 어느정도 수정 가능.

단점: 자식이 부모에게 종속됨(부모의 동작이 바뀌면 이 동작을 자식들도 영향을 받는다. 즉, 부모 클래스에 버그가 있으면 모든 자식들에게 파생된다.

 

인터페이스 상속

-구현 코드는 물려받지 않고 구현해야 할 메서드의 목록만 상속 받음. 메서드를 어떻게 구현하는가는 자식 클래스에서 결정.

-인터페이스 간 상속 가능: 메서드의 목록을 좀 더 세분화하여 재사용성을 높임.

-다중 상속 지원

: C#은 다중 상속을 지원하지 않는다. 즉, 한개의 클래스가 여러개의 클래스를 동시에 상속 받을 수 없다. 하지만 꼭 필요한 경우를 위해 인터페이스 다중 상속을 지원한다.(but, 지나치게 복잡하므로 잘 사용하지 않는게 좋음)

 

5. 메모리 관리(p.308)

개발자들에게 있어 좋은 프로그램이란? 메모리를 효율적으로 사용하는, cpu를 덜 바쁘게 하는 프로그램

-메모리(주소값을 갖는 공간)를 효율적으로 사용하는 프로그램? 1. 메모리를 적게 사용, 순차적으로 사용(cf.배열-순차적으로 데이터가 들어감) 2.지역변수 선언을 자제

-cpu를 덜 바쁘게 하는 프로그램? 1. 함수의 실행시간을 줄여주어야 함 2. 실행 단계(절차)를 줄여주어야 함

메모리의 경우,

함수가 리턴할때, 지역변수가 사라지면서 메모리에 빈 공간이 생김

공간이 부족해지면 가상디스크(하드디스크)를 쓰기 시작함(빈 공간을 채우지 않고)

이러한 메모리의 특성을 고려하여 메모리를 관리하기 위한 것이 가비지 컬렉터.

 

1) 가비지 컬렉터의 동작

-쓰레기 수집: 백그라운드에서 항상 실행 중이며 더이상 사용하지 않는 메모리(쓰레기)를 찾아 회수.

-힙 관리: 단편화 현상이 일어날 때 컴팩션(Compaction) 수행(메모리 압축, 하드 디스크의 조각 모음과 같은 개념)

*단편화: 할당이 요청되었을 때 힙에 객체가 만들어지고 회수 되기를 몇 번 반복하여 힙의 중간이 비게 되는 현상

*컴팩션(Compaction): 남아있는 메모리를 이동시켜 큰 덩어리를 만드는 것

 

2) IDisposable

파괴자: 객체가 사라질 때 비관리 자원을 직접 해제하는 것

자원을 직접해제해야 할 필요성: 가비지 컬렉터가 관리할 수 없는 비관리 자원, 가급적 빨리 해제할 필요가 있는 비싼 관리 자원

방법: IDisposable 인터페이스를 상속받아 Dispose라는 이름으로 만든다.

가비지 컬렉터가 동작할 때를 기다리는 것이 아니라 수동으로 직접 해제하므로 불확실성이 사라짐

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.10 닷넷 클래스  (0) 2011.02.22
chap.9 델리게이트  (0) 2011.02.21
chap.7 클래스 상속 3. 추상 클래스  (0) 2011.02.11
chap.7 클래스 상속 2. 재정의  (0) 2011.02.11
chap.7 클래스 상속 1. 상속  (0) 2011.02.11
Posted by 마마필로 :

chap.7 클래스 상속

1. 상속

 1.1 상속

 1.2 포함

 1.3 상속의 원칙

 1.4 안전한 형변환

2. 재정의

 2.1 멤버 숨기기

 2.2 메서드 재정의

 2.3 다형성

3. 추상 클래스

 3.1 추상 클래스

 3.2 봉인 클래스

 3.3 정적 클래스



1. 추상클래스

: 너무 일반적이어서 인스턴스를 생성할 수 없는 클래스.

참조호출은 불가, 상속전용으로 만든 클래스

(cf. Base class - 상속, 참조호출(직접 호출) 가능)

특정 클래스를 재사용하는 것이 아니라, 함수의 이름과 원형을 통일하기 위해 계층구조를 만들어야 할 때 사용. 즉, 계층 구조상 통일감 있는 클래스를 만들때 사용. 따라서 꼭 필요한 것은 아니다. 구현부는 필요없고 함수의 이름만 공유해서 사용할 때.

 

-방법: 클래스 선언문에 abstract 지정자를 붙임.

 

2. 봉인 클래스

메서드를 봉신시켜 더이상 재정의 할 수 없도록 함. 호출은 가능하나 상속할 수 없도록 함.

sealed 지정자를 메서드 앞에 붙임. 항상 override 지정자와 함께 사용.

중간 단계에서, 중간 단계의 클래스가 자신이 마지막으로 재정의 하고 싶을 때.

 

봉인 할 필요가 있는 중간단계의 클래스 → 보안관련 메서드들.

 

3. 정적 클래스

외부에서 호출하지 못하며 같은 클래스 내의 다른 생성자에 의해서만 호출될 수 있는 클래스.

cf.객체를 생성할 수 없는 클래스 - 추상 클래스, 정적 클래스

private을 선언하여 객체 생성을 의도적으로 금지.

 

>그렇다면, 객체를 생성하지 않아도 되는 클래스는?

 

생성자가 private이면 무조건 정적 클래스, 생성자가 puclic이면 추상 클래스이거나 동적 클래스

추상클래스는 객체를 만들지 않는 것

정적클래스는 (private에 의해) 객체를 만들 수 없는 것 - 상속불가능

 

상속하지 않는 모든 클래스는 정적클래스로 만든다. 호출만 하면 되므로.

상속하지 않는 모든 클래스는 static으로 만듬

 

ex.최하위 클래스(더이상 상속할 일이 없음, 실제 개발자(프로그래머) 만드는 최하위 클래스)

 

>어차피 상속되지 않을(이용하지 않을) 클래스라고 하더라도 static을 붙여준다. 만일의 사태 대비. 자주 생략하는 습관은 좋지 않음.

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.9 델리게이트  (0) 2011.02.21
chap.8 인터페이스  (0) 2011.02.11
chap.7 클래스 상속 2. 재정의  (0) 2011.02.11
chap.7 클래스 상속 1. 상속  (0) 2011.02.11
chap.6 함수형 멤버  (0) 2011.02.11
Posted by 마마필로 :

chap.7 클래스 상속

1. 상속

 1.1 상속

 1.2 포함

 1.3 상속의 원칙

 1.4 안전한 형변환

2. 재정의

 2.1 멤버 숨기기

 2.2 메서드 재정의

 2.3 다형성

3. 추상 클래스

 3.1 추상 클래스

 3.2 봉인 클래스

 3.3 정적 클래스



1. 개념

재정의(Override) : 오버라이드, 동일한 함수 원형에 매개 변수가 달라짐(cf. 오버로드, 함수 원형이 달라짐)

 

2. 멤버 숨기기

3. 메서드 재정의

: 상속받은 함수가 자신의 목적에 맞지 않을 경우 자식 클래스가 함수를 재정의 할 수 있다.(상속받은 후에 메서드 재정의)

1) 재정의 방법

부모 클래스 앞에 virtual, 자식 클래스 앞에 override를 붙인다.

짝을 이루어 사용 - 부모가 virtual로 선언한 함수에 대해서만 override를 쓸 수 있다.

virtulal과 override를 붙여 주지 않으면, 각각 단독의 함수가 된다.

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.8 인터페이스  (0) 2011.02.11
chap.7 클래스 상속 3. 추상 클래스  (0) 2011.02.11
chap.7 클래스 상속 1. 상속  (0) 2011.02.11
chap.6 함수형 멤버  (0) 2011.02.11
chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
Posted by 마마필로 :

chap.7 클래스 상속

1. 상속

 1.1 상속

 1.2 포함

 1.3 상속의 원칙

 1.4 안전한 형변환

2. 재정의

 2.1 멤버 숨기기

 2.2 메서드 재정의

 2.3 다형성

3. 추상 클래스

 3.1 추상 클래스

 3.2 봉인 클래스

 3.3 정적 클래스 


 
1. 개념

상속(Inheritance)

: 이미 만들어진 클래스(기반 클래스, Base Class)의 멤버들을 물려받아 새로운 클래스(파생 클래스, Derived Class)를 정의하는 기법.

cf.) 파생 클래스 = 슈퍼 클래스(Super Class), 서브 클래스(Sub Class) / 부모 클래스 - 자식 클래스

 

수정: 추가적으로 코드를 더 삽입하는것

변수: 원래 있던 값에서 다른 값으로 바꾸는 것

 

2. 특징

-부모 클래스는 수정할 수 없다.

따라서, 부모가 가진 필드나 함수는 최대한 단순하게, 꼭 필요한 것만 가지고 있어야 함. 자식클래스에서 필요한 부분을 추가(수정)할 수 있도록.

 

대부분의 파생클래스에 물려 줄 수 있는 함수의 기능은? 즉,

어떤 기능을 하는 함수를 부모클래스에 만들면 상속받는 자식클래스에서 자주 불러 사용할 수 있을 것인가?

→ 공동 데이터 타입을 정의하고 있는 함수(필드, 프로퍼티, 인텍스 또는 구조체 형태일 수도 있음)

그렇다면, 데이터 타입을 정의하고 있는 부모 클래스를 만들면서 그 안에 함수는 어떤것을 사용할 것인가

→ 필드를 정의하는 함수(ex.inform)

 

자식 클래스에서 받아서 쓸만한 가치가 있는것을 부모클래스에 만들어야 함. 대표적인것이, 데이타타입 선언.

 

3. 형식

 지정자 class 이름 : 기반클래스, 인터페이스

 {

 // 멤버 목록

 }

 

4. 상속의 사용

-부모 클래스는 코드가 안보이도록 dll파일로 컴파일 되어 있음. 부모 클래스의 코드를 분석하여 이해할 필요는 없음. 만들어진 클래스의 메뉴얼을 보고 이용하면 됨 → 시간단축.

-두 개 이상의 부모 클래스를 상속 받으려면 계층구조(a → b → c, c가 a와 b를 상속 받음)로 상속(동시 상속 안됨) 또는 두 개 이상의 부모 클래스를 합침.

 

외부 클래스를 사용할 수 있는 세 가지 방법 - 상속, 참조, 내부클래스에서 사용? 중 가장 효율적인 방법이 상속이다.

 


chap.7 클래스 상속

1. 상속

 1.1 상속

 1.2 포함

 1.3 상속의 원칙

 1.4 안전한 형변환

2. 재정의

 2.1 멤버 숨기기

 2.2 메서드 재정의

 2.3 다형성

3. 추상 클래스

 3.1 추상 클래스

 3.2 봉인 클래스

 3.3 정적 클래스 


1. 구조체는 상속의 대상이 아님. 이로 인해 구조체의 사용률이 떨어짐.

2. 모든 클래스는 하나의 기반 클래스만 가짐. (cf.다중 상속을 지원하는 언어 - smalltalk)

   단, 인터페이스는 구현 상속이 아닌 메서드의 목록(=프로토타입, 함수원형)만 제공하므로 다중 상속 가능

3. 한 클래스로부터 파생되는 클래스의 갯수 제한 없음.

Posted by 마마필로 :

p.217

chap.6 함수형 멤버

1.메서드

 1.1 메서드 정의

 1.2 메서드 오버로딩

2. 프로퍼티

 2.1 프로퍼티

 2.2 프로퍼티의 장점

 2.3 인덱서(Indexer)

3.연산자

 3.1 연산자 오버로딩

 3.2 연산자 오버로딩의 예

 3.3 캐스트 연산자

 3.4 오버로딩의 애매함

 

인덱서: 객체를 마치 배열인 것처럼 사용할 수 있도록 함

 

<형식>

지정차 타입 thin[인수]

{

get { return 값; }

set { 값 변경; }

}

 

프로퍼티와 같은 문법이지만, 프로퍼티를 여러번 쓰는 것보다 인덱스를 사용하는것이 빠르므로 반복적인 처리에서 인덱스 사용이 더 유리하다.

한 클래스 내에는 하나의 인덱스만 사용가능: 이름이 this로 주어져 있기 때문에

 


 

chap.6 함수형 멤버

1.메서드

 1.1 메서드 정의

 1.2 메서드 오버로딩

2. 프로퍼티

 2.1 프로퍼티

 2.2 프로퍼티의 장점

 2.3 인덱서(Indexer)

3.연산자

 3.1 연산자 오버로딩

 3.2 연산자 오버로딩의 예

 3.3 캐스트 연산자

 3.4 오버로딩의 애매함

 

이렇게 실행되는 것이 연산자 오버로딩이라는 것의 개념이해.

p.224 '함수형 멤버'->함수에서 파생되어 나온 것.

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.7 클래스 상속 2. 재정의  (0) 2011.02.11
chap.7 클래스 상속 1. 상속  (0) 2011.02.11
chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트  (0) 2011.02.10
chap.1 닷넷  (0) 2011.02.10
Posted by 마마필로 :

1. C#언어

1.1 닷넷의 개발 언어  1.2 C#의 특징  1.3 구성 요소

 

2. 닷넷 프로젝트

2.1 콘솔 예제  2.2 윈도우즈 폼 예제  2.3 웹 폼 예제  2.4 그 외의 프로젝트

 

3. 네임스페이스

3.1 네임스페이스의 정의  3.2 using  3.3 닷넷의 네임스페이스

 

4. 기본적인 입출력

4.1 출력  4.2 입력  4.3 콘솔의 여러 가지 기능

 

5. 도움말

5.1 도움말 얻기  5.2 Main 함수  5.3 명령 행 컴파일러

 


1. 네임스페이스

명칭이 충돌하는 것을 방지하기 위해 명칭들을 저장해 놓는 장소. 명칭들이 저장되는 범위를 격리시킴.

같은 범위 내에서 두 개의 다른 명칭이 중복될 수 없다.

모든 명칭은 항상 특정한 네임스페이스 안에 포함되어야 함. 만약 네임스페이스 없이 외부에 명칭을 선언하면 기본 네임스페이스(=프로젝트 이름)에 소속됨.

네임스페이스에는 클래스, 구조체, 열거형, 인터페이스 등의 타입들이 포함됨.

 

<네임스페이스의 사용>

예약어 namaspace 다음에 네임스페이스 이름과 블록을 구성하고 이 블록 안에 명칭 정의

ex.

namaspace A

{

class MyClass { ...}

}

 

namespace B

{

class MyClass { ... }

}

→ MyClass로 명칭이 같지만 각각 namespace A, B(다른 네임스페이스)에 속해 있으므로 모호하지 않음.

 

<네이스페이스에 속한 명칭 참조>

. 기호 사용 (ex. A.MyClass, B.MyClass)

 

<네임스페이스끼리 중첩 가능-명칭들을 계층적으로 조직화>

namespace A

{

namespace B

{

class MyClass { ... }

}

}

 

namespace A.B

{

class MyClass { ... }

}

→ 네임스페이스 A안에 또 다른 네임스페이스 B가 있고 B안에 MyClass가 정의되어 있음(중첩된 네임스페이스를 한꺼번에 정의)

 

③ 중첩된 네임스페이스 안쪽의 명칭 참조 → . 기호 사용

A.B.MyClass → A에 속한 B에 속한 MyClass

 

2. using

1)긴 명칭 참조문을 짧게 쓸 수 있도록 함.

using 다음에 참조할 네임스페이스명을 적으면 컴파일러가 using 선언된 네임스페이스를 항상 참조.

 

using 사용 전)

class FirstCon

{

public static void Main()

{

System.Console.WriteLine("C Shartp");

}

}

 

using 사용 후)

using System;

class FirstCon

{

public static void Main()

{

Console.WriteLine("C Sharp");

}

}

--> 첫 줄에 using Sustem; 선언이 있으므로 이후부터 등장하는 모든 명칭에 대해 이 네임스페이스를 검색 함.

Console 클래스는 System 네임스페이스에 정의되어 있으므로 원래는 System.Console라고 써야 하지만 System을 using 선언했으므로

이후부터 Console이라고만 적으면 됨.

 

2) 긴 네임스페이스에 짧은 별명을 부여

using 별명 = 네임스페이스;

 

3. 닷넷의 네임스페이스

-System: 루트 네임스페이스, 닷넷 응용 프로그램이 반드시 참조해야 하는 필수 네임스페이스

-using 선언은 꼭 필요한 것들만 선언하도록 한다->컴파일러가 명칭을 찾아야 할 범위가 넓어지므로 컴파일 시간이 오래 걸리고 명칭 충돌 확률이 높아짐

 

4. 기본적인 입출력

입출력 관련 기능 -> System 네임스페이스의 Console 클래스가 제공

1) 출력

-소스 선두에 using System; 선언

-WriteLine : 기본 출력 메서드

 

2) 입력

-ReadLine : 기본 입력 메서드, 오버로딩 되어 있지 않음

└형식 : public static string ReadLine ()

-ReadKey : 문자나 정수가 아닌 키 자체(커서 이동키, 펑션 키, Ins, Del 등 기능키 포함. 단, 조합키(Ctrl, Alt, Shift)는 제외)를 입력받을 때

└형식 : public static ConsoleKeyInfo ReadKey([bool intercept]);

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.7 클래스 상속 1. 상속  (0) 2011.02.11
chap.6 함수형 멤버  (0) 2011.02.11
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트  (0) 2011.02.10
chap.1 닷넷  (0) 2011.02.10
[0208과제] C# Data Types  (0) 2011.02.09
Posted by 마마필로 :

1. C#언어

1.1 닷넷의 개발 언어

1.2 C#의 특징

1.3 구성 요소

 

2. 닷넷 프로젝트

2.1 콘솔 예제

2.2 윈도우즈 폼 예제

2.3 웹 폼 예제

2.4 그 외의 프로젝트

 

3. 네임스페이스

3.1 네임스페이스의 정의

3.2 using

3.3 닷넷의 네임스페이스

 

4. 기본적인 입출력

4.1 출력

4.2 입력

4.3 콘솔의 여러 가지 기능

 

5. 도움말

5.1 도움말 얻기

5.2 Main 함수

5.3 명령 행 컴파일러




1. C#의 구성 요소

1) 키워드

2) 명칭(Identifier): 변수나 상수, 함수, 타입 등을 구분하기 위해 사용자가 이름을 직접 붙이는 것.

  같은 범위 내에서 두 개의 다른 명칭이 중복될 수 없다.

3) 연산자

4) 구두점

5) 상수

6) 주석

7)공백

 

2. 닷넷 프로젝트

1) 콘솔 예제

<비주얼 스튜디오 Program.cs의 기본 골격 코드>

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

namespace FirstCon
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

 

* 기본 골격 코드의 Main 안쪽에 원하는 코드 작성

* C# → 엄격한 대소문자 구분

* main(X) → Main(O)

* Main: 프로그램의 진입점 역할. Main에서부터 실행 시작.

간단한 콘솔 예제

 

2) 윈도우즈 폼과 웹 폼 이외에 비쥬얼 스튜디오로 제작 가능한 가능한 프로젝트

Win32 프로젝트, MFC 프로젝트, 모바일 프로젝트, WPF와 실버라이트, 데이터베이스 프로젝트, 오피스 응용 프로그램, 배포 프로젝트 등

 → 통합 개발 환경

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.6 함수형 멤버  (0) 2011.02.11
chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
chap.1 닷넷  (0) 2011.02.10
[0208과제] C# Data Types  (0) 2011.02.09
[0208과제] .NET Framework 개념  (0) 2011.02.09
Posted by 마마필로 :

chap.1 닷넷

2011. 2. 10. 00:22 from PROGRAMMING/C#.NET

1. 닷넷 소개

1.1 등장 배경

1.2 새로운 개발 환경

1.3 닷넷의 역사

 

2. 닷넷의 구조

2.1 플랫폼 독립

2.2 닷넷의 구성 요소

2.3 닷넷의 장점

2.4 닷넷의 허와 실

 

3. 개발 툴 설치

3.1 비주얼 스튜디오

3.2 도움말 및 옵션

3.3 선수 과목들

 


1. 닷넷

2000년 마이크로소프트사에서 발표한 새로운 개발환경. 운영체제 위에서 응용 프로그램이 돌아가는 실행환경(=플랫폼)

 

2. 닷넷의 구성 요소

-플랫폼 독립성(한번 작성한 프로그램을 운영체제에 상관없이 실행 가능)과 언어 독립성(닷넷 프로그램을 개발하는 언어에 제한 없음)을 확보하기 위한 장치들

 

1) CLR(Common Language Runtime)

닷넷 실행 엔진. 닷넷 프로그램 실행을 위한 모든 서비스를 제공하는 실행 주체. 닷넷의 핵심 커널.

 

*IL(Intermediate Language): 원시 언어 프로그램을 컴파일러로 번역하여 목적 언어 프로그램을 만들 때, 그 중간 단계로 거치는 언어.

어떤 언어로 만든 프로그램이든 IL(Intermediate Language)을 JIT(Just In Time)로 컴파일 후 CLR을 거쳐 운영체제와 통신.

특정 플랫폼에 종속되지 않으며, 중간 코드일 뿐이므로 직접 실행 불가능(CPU가 IL을 직접 해석할 수 없음)

→실행 단계를 한번 더 거쳐야 하므로 실행 속도 떨어짐

언어통합효과-어떤  언어를 사용하더라도 규칙에 맞게 IL만 생성해 낼 수 있다면 닷넷용 프로그램 작성에 사용 가능.

 

*JIT(Just In Time): IL을 기계어로 컴파일하는 컴파일러. 플랫폼별로 컴파일러가 따로 제공되므로 JIT 컴파일러만 바꾸면 어떤 플랫폼에서나 실행 가능

 

*컴파일러(Compilers): 고급 언어로 쓰여진 프로그램을 동일한 내용으로 갖는 기계어 프로그램으로 번역하는 시스템 프로그램.

 

2) CTS(Common Type System)

닷넷 지원 언어간 교차 프로그래밍을 위한 플랫폼 차원의 공통 타입 체계. 공동으로 사용하는 타입에 대한 약속.

 

3) CLS(Common Language Specification)

닷넷용 언어가 되기 위한 최소한의 규정. 언어간 편리한 상호 운용을 위해 닷넷에 적합한 언어가 되기 위한 최소한의 사양.

ex.

-전역 함수나 변수는 정의 할 수 없다.

-부호 없는 정수형은 인정하지 않는다.

-명칭은 대소문자를 구분하지 않는다.

-포인터를 사용할 수 없다.

-연산자 오버로딩을 지원하지 않는다.

 

4) BCL(Basic Class Library)

여러 가지 복잡한 기능을 제공하는 방대한 기본 클래스 라이브러리. 마이크로소프트가 미리 작성하여 제공하는 잘 정리된 클래스들의 거대한 집합.

<BCL에 포함된 클래스의 목록과 기능>

-기본 타입에 대한 정보 제공

-배열, 연결 리스트, 큐 등의 컬렉션 클래스

-그래픽 라이브러리(GDI+)

-스레드와 동기화 클래스

-각종 컨트롤

-파일 입출력

-네트워크와 인터넷 프로그래밍

-데이터베이스와 액세스

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트  (0) 2011.02.10
[0208과제] C# Data Types  (0) 2011.02.09
[0208과제] .NET Framework 개념  (0) 2011.02.09
[0208과제] C# 개념  (0) 2011.02.09
Posted by 마마필로 :

C#의 Data Types는 다음의 두 가지로 나눌 수 있다.

1. built-in data type(int or char)과 user-defined data type(class or interface)

2. Value Types(값 형식, 값을 저장)과 Reference Types(참조 형식, 실제 데이터를 참조하여 저장)

 2.1 Value Types

 value types은 두 개의 주요 카테고리로 구성: Structs(구조체), Enumerations(열거형)

 

출처

http://msdn.microsoft.com/en-us/library/s1ax56ch(v=vs.80).aspx

http://level.tistory.com/25

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트  (0) 2011.02.10
chap.1 닷넷  (0) 2011.02.10
[0208과제] .NET Framework 개념  (0) 2011.02.09
[0208과제] C# 개념  (0) 2011.02.09
Posted by 마마필로 :

1. 개념

차세대 응용 프로그램 및 SML Web service를 만들고 실행하는 것을 지원하는 필수적인 Windows 구성요소.

C#과 관련하여, C#언어로 프로그래밍된 프로그램의 실행을 지원하는 구성요소.

 

2. 주요구성요소

 2.1 공용 언어 런타임

 2.2 클래스 라이브러리

 

출처

http://msdn.microsoft.com/ko-kr/library/zw4w595w(v=VS.80).aspx



'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.2 C#언어 3. 네임스페이스  (0) 2011.02.10
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트  (0) 2011.02.10
chap.1 닷넷  (0) 2011.02.10
[0208과제] C# Data Types  (0) 2011.02.09
[0208과제] C# 개념  (0) 2011.02.09
Posted by 마마필로 :