목록전체 글 (104)
승쨩개발공부
배열형이고 시퀀스 컨테이너이다 c++의 백터와 흡사하다. 탐색에는 유리하지않은 자료구조지만 인덱스로 표현할수있다면 탐색의 가장 용이한 자료구조이다. 현재 List에 는 아래 그림과 같은 구조로 되어있다 count가 4가된다면 capacity는 2배씩 늘어나게된다. 4 -> 8 -> 16 -> 32 -> 64 리스트의 삭제
재네릭은 자료형을 변수처럼 사용이 가능해진다 사용법은 함수의식별자의 을 넣어주면 된다. 재네릭을 사용함으로써 오버로딩된 int와 string을 인자로 받는 함수들을 단축시킬수있음 가변형 자료형으로 바뀌기떄문. C#에서는 함수를 사용할떄 함수명 뒤에 가 붙어있는 함수는 재네릭 함수라고 판단하면된다. 인자를 여러 개 받을수도 있다. 클래스로도 사용이 가능한데 나는 Inven클래스를 여러개(CahsInven,GameInven) 만들고싶지않고 제네릭으로 받은 Gameitem이나 CashItem클래스를 배열로 만들고싶고 객체를 따로 관리하고싶다. 이런식으로 객체를 만들어 재네릭을 유동적으로 사용이가능하다. 제네릭은 C++ 템플릿과 매우 흡사한대 차이가 좀 많다 C# 제네릭은 매개 변수가 있는 형식에 대한 더 간단..
인터페이스는 사용자 정의 자료형이다. 인터페이스는 맴버변수, 함수의 정의를 설정할수없다. 인터페이스의 접근지정제한자는 public으로 되어있고 public만 사용이 가능하다. (눈에 보이진않지만 public, 자식은 public이라고 명시를 해주어야함) 맴버변수와 함수의 정의를 사용할 수 없는 모습. 인터페이스는 인터페이스의 함수의 선언을 상속받은 자식클래스에게 강제시킨다 (즉 인터페이스의 함수의 선언을 자식클래스가 정의를하지않으면 사용하지못함) 자 그럼 이 인터페이스가 무슨 장점이 있느냐? 다중상속같은 개념이 가능하다. C++같은경우 다중상속이 가능한데 맴버변수같은 충돌이 일어날수있어서 있어도 위험해서 잘 쓰지않는다. C#은 위험하니까 그냥 다중상속을 막아놨는데 대신 interface로 맴버변수를 막고..
Partial = 부분적인 이라는 뜻을 가지고 있다. 즉 Partial Class 라는건 부분적인 클래스 라는 것. 만약 Player 의 여러가지 기능들을 하나의 파일에서 관리한다면 줄이 너무 길어지고 함수 읽고 찾기도 힘들고, 디버깅하기도 불편해질것같다. 그럴떈 Partial로 클래스 이름은 같지만 클래스 파일 이름을 다르게해서 기능을 부분적으로 관리해보자. (클래스 파일이 쪼개져있지만 다 한곳에 있는것처럼 사용가능) 즉 파일 분할해서 같은 클래스 이름으로 사용이 가능하다. 1번 클래스 파일 2번 클래스 파일 같은 Class Player로 보고 메인에서 사용이 가능하다.
1. C#은 헤더 파일 임포트가 따로 없다 안보이는 중앙 처리장치에서 일괄 임포트해서 모두 공급한다. 헤더 파일을 임포트하지 않아도 어디에서든 다 사용가능 그럼 c++처럼 선언문(헤더) 정의문(cpp) 나눠서 하고싶은데 어떻게 해야할까.. 대신 C#은 클래스가 너무 길어지는걸 방지하기위해 Partial이라는게 존재. 2. C#은 클래스와 struct가 크게 다르다 c++은 사실 클래스와 Struct(구조체)가 큰 차이가없다 (상속도 가능)C#은 Struct가 상속이 안된다. 그리고 New로 생성하지 않아도 인스턴스가 된다(C# 클래스는반드시 new로 생성해야함 자체는 안됨 구조체는 자체로도 충분하고 New도 가능)C#도 Struct 인스턴스를 따로 만들어줘야한다. 1번이 가장 불편하면서도 편한거같다 코드..