
c반면에 차이점은 Readonly는 컴파일 타입 상수이며 const는 런타임 상수이다!런타임 상수이다. (exe 또는 dll을 사용할 때 변수의 값을 가져온다.)모든 자료형에 사용할 수 있으며, 생성과 동시에 초기화할 필요가 없다.단, 생성자 단계에서 단 1번의 할당을

true, false 판별하는데 1bit만 필요하지만boolean 타입이 1byte크기인 이유는,컴퓨터는 1byte 단위로 일을 하기 때문에 맞춰 준 것 뿐이다.True -> 00000001False -> 00000000실수의 연산은 정수 연산보다 비싸다.실수는 딱 떨

1. 정수형식 > 1. Main 함수 프로젝트 내에 전체 딱 1개 있어야 한다. 프로그램을 처음 실행할 때 가장 먼저 실행된다. 출력로그 Console.WriteLine 2. 정수 > 변수 : 데이터를 저장하는 바구니 Output:) Hellow World! 10

1\. 연산자 종류비트 shift 연산자'>>' 오른쪽으로 몇 칸 옮길지'<<' 왼쪽으로 몇 칸 옮길지<< Left Shift 연산자1 << 2 는 0001을 2번 왼쪽으로 이동시키는 것과 같으므로 0100이 된다. 즉, 4비워지는 곳은

if - else 반복을 줄인다!가독성을 높여준다!switch(n) 인수로는 기본적으로 정수와 문자를 넣을 수 있다!최근 Cbreak에 걸리지 않으면 해당된 case에서부터 쭉쭉 다 실행한다. 해당 case만 실행 시킬 것이라면 break 꼭 명시!break는 swit

Call by ValueCall by Value 👉 number는 a와 동일한 값을 가진 것 뿐인 별개의 메모리를 가진다. Call by Referencea 메모리 자체를 AddOne 함수의 매개변수로 넘겨준다. 따라서 number 값이 변하면 a 값도 변한다. 둘은

절차지향 👉 전부 함수로 코드를 짬.유지 보수가 힘들다. 프로그램 규모가 커지면 복잡해진다.함수 호출 순서에 종속적이기 때문에 유지 보수가 힘들다. 호출 순서 타고타고 올라가 보며 코드를 보아야 해서 불편하다.함수를 계속 새로 만들어야 해서 복잡하다.같은 Fight라

객체를 new로 생성함과 동시에 멤버 값들을 원하는대로 초기화하고 싶을 때 생성자 호출클래스 이름과 같아야 함!리턴타입, 매개변수❌접근 지정자⭕생성자 이름 옆에 : this() 👉 '디폴트 생성자 호출해줘' 라는 의미따라서 this.hp = hp 를 실행하기 전에 K

1\. 코드의 재사용성부모 클래스 👉 Player직업에 상관없이 플레이어라면 모두 가지고 있는 공통된 속성과 기능을 부모클래스로 묶는다!자식 클래스 👉 Mage, Aracher, Knight이 클래스들은 Player를 상속받으므로 플레이어라면 모두 갖고 있는 공통

부모 자식간 형식 변환knight 스택 메모리에서 new Knight()로 생성한 힙 메모리 객체의 주소를 담는다.부모 👉 Player자식 👉 Knight, Maze업 캐스팅 : 자식 👉 부모 ⭕️자식(Knight)타입의 객체(new Knight();)를 부모 타
eGameState 내용들을 모두 가져와 루프를 돌고 싶을 때 사용하는 방법이다!Enum.GetValues(Type type) 메서드를 이용해 배열로 받아 올 수 있다.

부모 클래스로부터 상속 받은 함수와 이름은 동일하지만 이와 상관없는 완전히 새로운 함수로서 재정의하고 싶다면 new 키워드를 사용하면 된다! Player의 Move()와 Knight의 Move()는 완전히 다른 함수다. (new를 꼭 붙이지 않아도 됨.)매개변수인 pl

프로그램을 돌리기 위해서는 개발자가 첫째로 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어코드로 변환되어 실행하여야 한다. 이러한 편집 과정을 컴파일타임(Compiletime)이라고 부른다! 컴파일 과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프

Contains🎲출 력🎲TrueContains(string) 👉 호출한 문자열에 인수로 넘긴 문자열이 부분 문자열로 존재한다면 True, 아니면 False 리턴.인수로 넘긴 "Harry"는 name 문자열에 부분 문자열로 존재하기 때문에 True 리턴.IndexO