본문 바로가기

분류 전체보기

(105)
예외 처리 [ 예외 처리 ]예외 상황에 대비하여 프로그램을 안정적으로 유지오류 상황을 적절히 처리하고, 프로그램을 계속 실행프로그램의 안정성을 높이고 디버깅을 용이C#에서는 try-catch 블록을 사용하여 예외 처리를 수행try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, catch 블록에서 예외를 처리          catch 블록의 우선순위catch 블록은 위에서부터 순서대로 실행되며, 예외 타입에 해당하는 첫 번째 catch 블록이 실행예외 타입은 상속 관계에 있는 경우 상위 예외 타입의 catch 블록이 먼저 실행        finally 블록의 역할과 사용법finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드 블록finally 블록은 예외 처리의 마지막 단계로, 예외 발생 시..
인터페이스 , 열거형 enums [ 인터페이스 ]클래스는 단일 상속만을 지원하지만, 인터페이스는 다중 상속을 지원 추상적인 동작만 정의하고, 구현을 갖지 않는다 [ Enums ]서로 관련된 상수들의 집합을 정의할 때 사용열거형의 각 상수는 정수 값으로 지정
제너릭 [ 제너릭 ]클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능C#에서는 형태의 키워드를 이용하여 제너릭을 선언제너릭 클래스나 메서드에서 사용할 자료형은 선언 시점이 아닌 사용 시점에 결정제너릭 클래스나 메서드를 사용할 때는 대신 구체적인 자료형을 사용 제너릭을 두개 이상 사용하는 경우
클래스의 상속 및 다형성 / 추상 클래스 [ 상속 ]기존의 클래스(상위 클래스) 를 확장하거나 재사용하여 새로운 클래스(하위 클래스) 를 생성자식 클래스는 부모 클래스의 멤버(필드, 메서드, 프로퍼티 등)를 상속받아 사용C#에서 다중 상속은 불가능 [ 다형성 ]다형성은 가상 메서드와 같은 의미로 볼 수 있다.부모 클래스에서 정의되고 자식 클래스에서 재정의할 수 있는 메서드가상 메서드는 virtual 키워드를 사용하여 선언되며, 자식 클래스에서 필요에 따라 override로 재정의될 수 있다. [ 오버라이딩 ]부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것을 의미 ( 위 사진에서 사용 )이는 상속 관계에 있는 클래스 간에 발생하며, 메서드의 이름, 매개변수 및 반환타입이 동일해야만 함오버라이딩을 통해 자식 클래스는 부모 클래스..
틱택토 - 턴제 형식 A턴과 B턴으로 나눴으며A턴은 동그라미를 사용하고 B턴은 엑스를 사용한다 짜증났던 부분잘못된 위치를 입력하면 다시 입력시키도록 유도하기 위해서 else로 처리하려 했는데문구가 한 번만 출력되는게 아니라 9번 나왔다.이 코드 블록에서 for 루프는 사용자가 입력한 위치를 게임 보드의 위치와 비교하여 유효한 위치인지를 확인한다.만약 사용자가 잘못된 위치를 입력했다면,즉 사용자 입력이 게임 보드의 어떤 위치와도 일치하지 않는 경우에 해당하는 상황을 처리하기 위해 사용한다.여기서 else if (i == arr.Length - 1)은 for 루프에서 현재 반복이 배열 arr의 마지막 요소에 도달했을 때를 나타낸다.즉, i가 arr.Length - 1과 같을 때라고 하면 9번출력되던 문제를 1번만 출력되게 설정할..
클래스 & 객체지향 프로그래밍 [ 객체지향 프로그래밍 OOP ]캡슐화 : 관련된 데이터와 기능을 하나의 단위로 묶는 것상속 :  기존의 클래스를 확장하여 새로운 클래스를 만드는 메커니즘다형성 : 하나의 인터페이스나 기능을 다양한 방식으로 구현하거나 사용할 수 있는 능력추상화 : 복잡한 시스템이나 개념을 단순화하여 필요한 기능에 집중객체 : 클래스로부터 생성된 실체 [ 클래스 ]데이터와 메서드를 하나로 묶은 사용자 정의 타입 [ 필드 / 메서드 ] [ 생성자 / 소멸자 ] [ 프로퍼티 ] 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 함필드와 마찬가지로 객체의 상태를 나타내는 데이터 역할을 하지만, 외부에서 접근할 때 추가적인 로직을 수행
캐스팅 사용 예시 ④ C# 캐스팅 (tistory.com) ④ C# 캐스팅캐스팅 = 형변환 변수를 사용할때 사용하고 있는 자료의 형태를 변환 해야하는 상황이 나올 수 있다. 예) string → int, string → bool 여러가지의 자료형이 있는 만큼 다양한 상황에서의 형변환이 있yoonwoojoo.tistory.com int.pase int.trypase
우주의나라 클래스 맛보기 및 TIL 처음으로 클래스라는 것을 사용해 보았다.세분화하여 작업하기 때문에 확실히 가독성이 좋고 효율적이다.하지만 하드코딩으로만 코딩해와서 생각나는데로 적으면서 내려갔었던거랑은 달리클래스를 사용하게되니 각각의 클래스별로 정상적으로 기능하고 서로 호환될 수 있도록 시나리오를 상정하는 부분들이 낯설다.자주 애용해왔던 string input = ConsoleReadLine(); 에서 if(string == input) 으로 이어지는 콤보대신에 새로운 클래스에 해당 기능을 저장해놓고 case를 사용하는 식으로 하니 간편하였다.위의 코드는 string을 사용하는 문자열이지만 정수를 사용하는 int같은경우로 만드려면if ( int.tryparse(~~~,out @) 과 같은 형식으로 @을 리턴값으로 반환하면 된다.
숫자 맞추기 게임 0부터 100까지의 숫자 값을 자료형 int를 사용하여 배열형식으로 만들었고자료형 int를 사용한 새로운 변수 x를 만든다음에 배열에 있는 숫자값 중에 랜덤하게 하나를 선택하도록 설정 string input = Console.ReadLine(); 으로 입력창을 구성 입력변수 input을 x와 비교하려면 일단 string으로 되어있어서 캐스팅을 해야했는데기존에 계속사용해왔던 int.parse 를 활용하는 시나리오를 상정하였으나 코드를 작성하는데 어려움이 생겼다.그래서 한번도 사용해본적 없던 int.tryparse를 활용하고 out 시킨 변수는 string이 아닌 int형이므로이 out 시킨 변수를 x와 비교하는것이 가능하게 되었고 이에 따라 부등호를 사용하기위한 조건문을 수행하였다.처음으로 실전에서 트라이..
구조체 [구조체]struct 키워드를 사용하여 여러 개의 데이터를 묶어서 하나의 사용자 정의 형식으로 만들기 위한 방법구조체는 변수를 선언하여 사용할 수 있음구조체의 멤버에는 접근할 때 . 연산자를 사용 함스태틱에 넣어야 하므로 자료형 앞에 퍼블릭을 넣어야 오류가 발생하지 않는다
메서드 [ 메서드 ] 일련의 코드 블록으로 메서드를 활용해서 코드를 줄일 수 있음메소드와 함수는 유사한 개념이지만, 프로그래밍 언어의 패러다임에 따라 약간의 차이가 있음객체 지향 프로그래밍에서는 주로 메소드를 사용절차 지향 프로그래밍이나 함수형 프로그래밍에서는 함수를 사용 하지만 이 둘을 동일하게 취급할 수도 있음 [ 메서드 구조 ] 접근제한자   메서드에 접근할수 있는 범위를 지정리턴타입   메서드가 반환하는 값의 타입을 고려해야만 한다. 반환 값이 없을 경우 void를 사용메서드명   호출하기 위해 사용하는 이름파라미터    매개변수는 메서드 선언부에 지정되며 메서드가 호출될 때 전달되는 값을 받아들이기 위한 역할 이를 통해 메서드는 호출될 때마다 다양한 입력 값을 받아들이고, 해당 값들을 기반으로 작업을 ..
우주의나라 우주의나라 넥슨사 바람의나라의 데이터를 응용하여 간단한 프로그램 작업을 진행해 보았다구현한 시스템은 로그인, 상태창 확인, 인상점 및 NPC 구현, 인벤토리 및 장착 시 옵션 반영 등등이 있다. [ 작업을 진행하면서 어려웠던 점 및 해결 과정 ]ⓐ 로그인 시스템일단 로그인 시스템을 만들 때 전반적인 베이스로 반복문을 사용해야 겠다고 느꼈다.그 이유는 아이디 혹은 비밀번호가 일치하지 않으면 다시 접속하도록 유도해야 했기 때문이다.그래서 채택한 문법이 While문이었고 이 것은 조건식에 부합할 때 까지 무한루프로 돌릴  수 있기 때문이다. while의 조건식으로 플레이어가 입력한 아이디값 = 패스워드값 을 설정하고 진행해보려 했지만 생각해보니 아이디와 비밀번호를 입력하라..