남은 4주차 강의 다 듣기 성공 🙌 [델리게이트] 델리게이트 델리게이트란? 메서드를 참조하는 타입(객체)로, 메서드를 변수에 저장하듯이 활용할 수 있다. 메서드는 참조타입 또는 값타입과 같은 분류에 속하지 않는다. 따라서 메서드의 인수로 전달하는 등의 실행이 불가능하다. 이럴 때 델리게이트 객체를 활용하면 메서드를 저장하여 인수로서 작용하도록 하거나 변수로 참조하는 것이 가능해진다. 예제 // 델리게이트 선언 public delegate void EnemyAttackHandler(float damage); // 적 클래스 public class Enemy { // 공격 이벤트 public event EnemyAttackHandler OnAttack; // 적의 공격 메서드 public void Attac..
c#
3주차 강의를 후다닥 듣고 과제를 진행하면서 내가 온전한 이해를 하지 못했다는 사실을 깨달았다. 그냥 그런가보다 하고 넘어가지 못하는 성격이기도 하고, 보다 명확하게 개념을 이해하지 못하면 활용에서도 어려움이 생길 수밖에 없다. 강의가 꽤나 압축적인 내용을 담고 있어서 단순히 듣기만 하는 걸로는 부족한 것 같다. 과제를 진행하면서도 개념을 익힐 수 있지만, 이번에는 궁금한 점이 많아서 제시된 개념들의 주변정보를 추가적으로 공부했다. [인터페이스] 인터페이스란? 클래스가 구현해야 할 멤버들을 정의하는 것. 이 때 어떤 내용을 구현해야 하는지에 대한 정보만 제공할 뿐, 실제 구현을 하지는 않는다. 클래스가 인터페이스를 구현할 경우, 모든 인터페이스의 멤버를 구현해야 한다. 다중 상속이 가능하다. 클래스의 일..
[들어가기] 2주차부터 바보 같이 기본 요구 사항이나 참고할만한 게 있는 줄 모르고 과제를 진행했는데, 진짜 냅다 위 글자들만 보고 진짜 어쩌라는거지......... 라는 생각으로 일단 서치를 시작했다. 게임에 대한 설명도 없이 진행하라 하는 게 말이 안 된다 생각했는데 그냥 제가 바보였다고 합니다. 아주 친절하게 게임에 대한 설명과 요구사항, 그리고 필요한 코드 및 함수에 대한 정보까지도 모두 제공해주고 계셨네요. 일단 나는 그걸 몰랐고... 그래서 아주 마음대로 시작해버렸기 때문에 다른 분들과 코드가 꽤 다를 수 있을 거라고 생각... 중간부터 과제 설명을 참고하긴 했지만, 풀이는 거의 완성한 후 클래스와 접근제한자를 정리할 때 참고하기 위해서만 확인했다. (이 부분이 제일 어려웠다. 클래스를 나누어..
[공부 내용] * 일단 대충 쓰고 주말에 다시 공부하기 [클래스와 객체] 1. 객체지향프로그래밍의 특징 캡슐화 한 코드에서 여러가지 일을 하는 게 아니라 각각의 필요한 기능을 구현한 후 이것을 뭉쳐서 새로운 구현을 함 관련된 데이터와 기능을 하나의 단위로 묶음 이를 통해 정보에 대한 직접적인 접근을 제한할 수 있음 --> 안전성과 유지보수성 상속 클래스의 확장. 계층 구조를 구성하여 코드의 구조화와 유지보수를 용이하게 함 다형성 Ex. 오버로딩 / 동일한 코드에서 다양한 처리가 일어날 수 있도록 하는 것 추상화 객체 2. 클래스의 구성요소 필드: 멤버 변수 메서드: 멤버 함수 생성자: 생성될 때 호출되는 메서드 디폴트 생성자: 클래스와 동일한 이름, 매개변수 없음 디폴드 생성자 없이 다른 생성자를 추가할..
어제 집중을 너무 못해서 오늘로 과제가 미뤄졌다. 이번 과제는 틱택토 게임 만들기인데, 해본 적 없는 과제라 재밌었다. (야구게임, 홀짝문제, 어쩌구저쩌구 등 어떤 언어든지 반복적으로 등장하는 과제들이 있는데, 언어 찍먹 유목민에게는 조금 지루한 과제들이다.) 암튼 코드로 그림 그려보기? 가보자고 [기본 세팅] string[,] board = new string[3, 3]; string inputX; string inputY; int x; int y; int computerX; int computerY; bool isRunning = true; string winStatus = ""; int playCount = 0; 우선 보드를 만들기 위해 다차원 배열을 생성했다. 처음에는 int 배열로 생성했으나, ..
[공부 내용] * 기억해야 할 부분 또는 헷갈리는 내용 위주로 프로그래밍 기본 요소 (1) Escape Sequence 이스케이프 시퀀스 설명 \' 또는 \" 문자열 내에 따옴표 삽입 \\ 문자열 내 역슬래시 삽입: 파일 경로 등의 표기에 필요한 경우 많음 \n 줄바꿈 \r 현재 줄 맨 앞으로 이동 \t 탭 삽입 \b 백스페이스 삽입 다른 프로그래밍 언어들과 거의 비슷한 것 같다. \r, \t, \b는 모두 활성 위치(커서)를 옮겨가도록 한다. 그 후에 덮어쓰기 되는 것 \b 백스페이스 삽입 같은 경우에도 커서를 한 칸 뒤로 옮기기 때문에 백스페이스 역할을 하는 것 (2) 주석 작성하는 습관이 들지 않아 주석을 정말 안 쓰는데 (심지어 코드도 나만 알아볼 수 있는 최악의 상황), 앞으로 협업이 많아질 것..
[형변환] 1. 숫자 --> 숫자 (float) 혹은 (int)를 변환하고자 하는 숫자 앞에 붙여 변환 float 값을 int로 변환할 때 소수점 아래 값은 누락됨 형이 변환되는 과정에서 실질적인 값에 변화가 없을 경우에는 (데이터 손실 없는 경우) 형태 명시 없이 캐스팅 가능 2. 문자로 바꾸기 숫자나 Bool 값을 문자열로 변환할 경우 .ToString() 붙이기 3. 문자 --> 다른 자료형 Convert 클래스 이용: Convert.ToInt32(문자열), Convert.ToBoolean(문자열), Convert.ToDbouble(문자열), Convert.ToSingle(문자열) Parse() 함수 이용: int.Parse(문자열), bool.Parse(문자열) TryParse() 함수 이용: 결..