C#(25)
-
[C#] 데이터 집합을 다루는 컬렉션을 알아보자
안녕하세요. 진득코딩입니다. 이번 시간에는 많은 데이터들을 다룰 때 편리하게 다룰 수 있는 클래스인 컬렉션에 대해서 살펴보도록 하겠습니다.컬렉션이란 컬렉션은 배열과 같이 데이터 집합을 다루는 클래스입니다. 해당 클래스가 있는 네임스페이스는 위와 같이 네 가지가 있는데 그 중에서 이번 시간에는 System과 System.Collections에 있는 클래스들을 살펴보도록 하겠습니다.어레이 array는 흔히 알고 있는 배열입니다. 같은 타입의 여러 데이터들을 일렬로 묶어 놓은 것입니다. 위와 같이 ConvertAll을 이용하여 2배로 키운 값을 가지는 string 배열을 만들 수도 있습니다. 이때 string.Join을 이용하여 각각의 값을 ,으로 구분할 수 있습니다.Stack 다음으로 살펴볼 컬렉션은 스택입..
2024.07.25 -
[C#] try-catch로 예외 처리하는 법을 알아보자
안녕하세요. 진득 코딩입니다. 이번 시간에는 예외를 처리하여 특히나 웹사이트 같이 꺼지면 안되는 개발을 할 때 굉장히 중요한 예외 처리하는 법에 대해서 살펴보도록 하겠습니다.try-catch와 finally 그리고 throw try-catch 구문은 복잡해보이지만 의외로 간단합니다. 먼저 try문에 예외가 발생할 만한 코드를 작성합니다. 이때 예외가 발생하면 catch 구문에서 잡아서 해당 구문이 실행됩니다. 위에서는 ex.Message를 사용하도록 하였기 때문에 위 배열의 인덱스가 넘친다는 문구가 나오게 됩니다. finally는 catch 여부를 떠나서 무조건 실행되는 구문입니다. throw 구문을 이용하여 try에서 예외가 발생하면 출력될 문구를 의도적으로 정하여서 출력할 수도 있습니다. 위와 같이 ..
2024.07.23 -
[C#] Thread 이벤트로 구현한 코드 분석해보기
안녕하세요. 진득 코딩입니다. 개발을 하면서 직접 개발하는 것도 어렵지만 다른 사람의 코드를 해석하는 것도 굉장히 어려웠던 기억이 있습니다. 이번 시간에는 다른 사람이 구현한 코드를 분석해보는 시간을 가져보도록 하겠습니다.실행해보기 해당 코드를 실행해보면 먼저 Form1이 나오게 됩니다. 그리고 player 수를 설정할 수있고 시작 버튼도 보실 수 있습니다. 이러한 텍스트와 버튼 밑에는 textBox를 보실 수있습니다. 필자는 player 수를 3으로 지정하였습니다. 시작 버튼을 누르게 되면 오른쪽에 플레이어의 수만큼 바가 생기게 되고 각각의 쓰레드가 실행되는 것을 확인하실 수 있습니다. 실행이 끝난 스레드는 textBox에 플레이어 이름과 함께 완주를 했다고 문구가 나오게 됩니다.솔루션 탐색기 살펴보기..
2024.07.23 -
[C#] 정적 메소드와 값을 참조하는 ref, out을 알아보자
안녕하세요. 진득 코딩입니다. 이번 시간에는 심화 문법 세 번째 시간으로 정적 메소드와 값을 참조하는 ref와 out에 대해서 살펴보도록 하겠습니다.정적 메소드 다른 클래스에 있는 변수를 사용하기 위해서는 new를 사용해서 인스턴스화해서 사용합니다. 하지만 static을 사용하게 되면 전역에서 인스턴스화할 필요없이 바로 사용이 가능합니다. 하지만 static을 사용하게 되면 stack 영역에 변수가 항상 들어가있게 되기 때문에 성능적으로 안좋아서 사용을 지양하는 것이 좋습니다.값의 참조 다음으로는 값을 참조하는 ref와 out에 대해서 살펴보도록 하겠습니다. 위와 같이 ref와 out을 사용하지 않고 void 메소드를 사용하게 되면 x에만 3이 담기게 되고 num은 그대로 1이 출력되는 것을 볼 수 있..
2024.07.18 -
[C#] 오버 로딩과 오버 라이딩에 대해 알아보자
안녕하세요. 진득 코딩입니다. 이번 시간에는 심화 문법 두 번째 시간으로 오버 로딩과 오버 라이딩에 대해서 살펴보도록 하겠습니다.오버 로딩 메소드의 오버로드를 사용하여 같은 이름의 메소드를 사용할 수 있습니다. 단 각각의 메소드의 구분을 위해서 변수의 종류나 수는 달라야합니다. 이렇게 비슷한 기능을 같은 이름으로 구현하여 가독성을 높일 수 있습니다. 실습 예제를 보시면 같은 setCombatPoint 메서드에 바뀌는 변수의 수에 따라서 같은 이름의 다른 메서드들을 만들었습니다.오버라이드 메소드 오버라이드는 상속일 때 사용할 수 있습니다. 위와 같이 shape에서는 say()라는 메서드가 Hi를 출력하지만 Square에서는 say()라는 메서드가 Hello를 출력합니다. 그래서 square.say()는 H..
2024.07.17 -
[C#] 좀 더 심화된 C# 문법을 알아보자
안녕하세요. 진득코딩입니다. 저번 시간까지 간단한 C# 문법을 이용하여 간단한 계산기를 만들어보았습니다. 이번 시간에는 조금 더 심화된 C# 문법들에 대해서 살펴보도록 하겠습니다.구조체 앞선 기초 문법에서도 살펴봤던 구조체입니다. 구조체를 이용하여 여러 변수들을 모아서 사용할 수 있습니다. 사용할 때에는 new를 사용하여 p로 생성했다면 p.x, p.y, p.z와 같이 표현하여 사용할 수 있습니다. 똑같이 구조체를 만들고 배열로 선언할 수도 있습니다. new를 할 때 배열로 선언하고 사용할 때에는 p[i].x, p[i].y, p[i].z와 같이 사용하실 수 있습니다.화살표 함수 화살표 함수는 Arrow Function이라고도 하고 주로 한줄짜리 함수같은 간단한 함수에서 많이 사용됩니다. 원래의 함수에서..
2024.07.16