본문 바로가기

반응형
[C#] 제네릭(Generics) 제네릭은 int, float, double 같은 데이타 요소 타입을 확정하지 않고 이 데이타 타입 자체를 타입파라미터로 받아들이도록 클래스를 정의한다. 클래스를 사용시 클래스명과 사용타입을 함께 지정해 사용한다. 사용시 같은 타입 파라미터를 붙여 구현한다.제네릭의 장점- 캐스팅으로 인한 낭비가 줄어듬- 형식의 안정성- 박싱, 언박싱으로 인한 부하가 없다.제네릭의 제약조건제네릭 타입인수 T는 별다른 지정이 없으면 object이므로 object의 메서드만 사용할 수 있다.제약 조건 설 명 where T : struct T는 값 타입이어야 하며 참조 타입을 쓸 수 없다. 단 Nullable 타입은 값 타입이지만 예외적으로 이 제약 조건에서 허용되지 않는다. where T : class T는 참조 타입이어야 하.. 더보기
[C#] 스레드(Thread) 스레드란 하나의 프로그램에서 독립적으로 실행되는 함수, 또는 프로세스 내에서의 실행 단위(또는 흐름의 단위)이다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드라고 한다. ● 프로세스 - 메모리를 할당받아 실행되고 있는 프로그램 스레드 생성시 주의할 점 1. 우선권(Priority) - a함수화 b함수가 실행되고 있을 때 하나의 변수에 동시에 접근한다면 원하는 결과값과 상이할 수 있다. 이 같 은 상황을 방지하기위해 우선권을 정해야한다. 2. 동기화(Synchronization) - 여러개의 함수가 한가지 자원을 공유하고 있을 때 순서를 주어 결과값의 일관성을 유지하기 위해 사용한다. ex)은행 입.. 더보기
[C#] 인터페이스와 추상클래스 인터페이스와 추상클래스의 공통점1. 스스로 객체를 생성할 수 없다.2. 업캐스팅이 가능하다.3. 모든 추상 멤버를 구현해야한다.4. 추상클래스와 인터페이스의 추상함수는 가상함수이다. 인터페이스1. 변수 선언 불가능2. 함수 구현 불가능(선언만 가능)3. 접근제한자는 쓸 수 없으며 public으로 자동선언된다.4. 인터페이스는 인터페이스들 끼리의 상속과 중복구현이 가능하다. interface IRunnable { int nVar; // 변수 선언 불가능 void Run(); //함수 선언 가능 void Fly() {...} // 함수 구현 불가능 } class Runner : IRunnable { private void Run() {...} //private 불가능, public만 가능 } interfac.. 더보기

반응형