목록분류 전체보기 (106)
승쨩개발공부
배열형이고 시퀀스 컨테이너이다 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번이 가장 불편하면서도 편한거같다 코드..
프로퍼티(property)는 일부 객체 지향 프로그래밍 언어에서 필드(데이터 멤버)와 메소드 간 기능의 중간인 클래스 멤버의 특수한 유형이다. 프로퍼티의 읽기와 쓰기는 일반적으로 게터(getter)와 세터(setter) 메소드 호출로 변환된다. 선언은 Get Set함수와 다를것이없지만 Set함수는 외부 인자를 받아야하고 프로퍼티는 자료형을 설정한대로 Get Set도 같은 자료형으로 받게되고 외부 값을 value로 설정해놓으면 넣은값이 들어가게된다. 사용법 아직까진 c++ 문법이 너무 익숙해서 Get,Set이 더 편하게 느껴지지만 분명 쓰기 편할태니 자주 이용해봐야겠다.