C#은 포인터를 지원하지 않아서 메모리 세이프를 할 수 있다는것이다. 그런데 포인터를 쓸 수는 있기는하다. IntPtr, unsafe 를 쓰면 된다. (얼마나 메모리 세이프를 하고싶었으면 포인터 이름도 unsafe) 언어적 성격이 보여서 신기하다. C#이 고집하는 장점을 가져가면 좋겠지만, 언젠가 꼭 써야 하는 경우에 기술자로써 어버버 하고 싶지는 않으니 사용법을 곰부해 두고는 싶다. 기술면접때마다 "사용하신 언어의 특징은 뭔가요?" 하는 질문을 자주 받았는데, 생각보다 대답하기 어려웠다. 나는 바텀업으로 학습한 언어가 C밖에 없어서 더 대답하기 난처했던 것 같다. 모쪼록 지금은 대답할 수 있게는 되었지만 더 공부가 필요하다. C#의 장점 1. 가비지 컬렉터가 동작한다. 2. 포인터를 지양하여 메모리 세..
Server/C#

포스트를 시작하기 전, 신입 개발자가 작성한 포스트임을 알립니다 👼🏻 1. 소프트웨어 테스트 기법을 몇 가지 숙지합니다. 출처 : https://parksh86.tistory.com/166 출처 : https://www.oss.kr/info_test/show/afda9e9d-3be7-471a-9c55-9e2c3ac58221 위 출처들에는 프로그래머 개인이 혼자 진행할 수 없는 테스트 기법을 포함한 정말 모든 기법들이 나와 있습니다. 저는 프로그래머가 앉은 자리에서 간단하게 자기 프로그램을 테스트 할 수 있는 방법에 대해 포스트하고 싶습니다. 따라서 인수 테스트(계약 조건이 만족되었는지 확인하기 위해 구입자와 납품자가 모두 보는 앞에서 시행하는 테스트) 등의 테스트는 생략하고 기입했습니다. 아래 표를 보고..

서적을 읽다 정말 천재적인 방법을 발견하여 기록해 보겠습니다! 배열을 사용하다 보니 가장 자주 발생하는 에러가 System.IndexOutOfRangeException 에러이더군요. 모든 상황에서 index 에러를 방지하는 것은 쉽지 않습니다. 아래와 같이 설계하면 해당 예외를 대비할 수 있습니다. get 메서드에서 예외 방지 조건을 추가하는 것입니다. public class Program { public static void Main(string[] args) { IntArray intArray = new IntArray(); int a = intArray[10]; } } public class IntArray { private int size = 10; public int[] _items; publi..
??= 는 = 대신에 쓰이는 대입 연산자입니다! 예시 a ??= 1; ??= 는 좌측의 항이 null일 때에만 대입이 됩니다. 예시 int? number = null; int defaultValue = 10; number ??= defaultValue; // number이 null이므로 대입 성공 Console.WriteLine(number); // 출력: 10 number = 20; number ??= defaultValue; // number에 10이 들어가 있으므로 대입하지 않음 Console.WriteLine(number); // 출력: 20
FirstOrDefault 는 LINQ(Language Integrated Query)의 메서드 중 하나로, 검색을 하다가 가장 처음으로 조건에 부합하는 결과물을 도출할 때 유용합니다! List names = new List { "Alice", "Bob", "Charlie", "Dave" }; string firstMatch = names.FirstOrDefault(name => name.StartsWith("B")); Console.WriteLine(firstMatch); // Output: "Bob"
글을 열며 드디어 이벤트 사용법을 알아냈습니다! 저는 LUA언어로 미니게임을 만들며 이벤트를 아주 잘 사용했었습니다. 그때의 좋은 기억 덕분에 C# 개발을 하면서도 "이거 이벤트로 만들면 진짜 딱인데..." 싶은 것들이 나올 때마다 서적을 펼쳐 이벤트 부분을 무작정 읽었습니다. 하지만 앞부분을 읽지 않으면 이벤트를 이해할 수 없었고, 그 앞부분 또한 앞부분의 앞부분을 읽지 않으면 이해하기 난해했습니다. 결국 드디어 서적의 앞부분을 다 읽고 이벤트까지 오게 되었는데, 이걸 설명하려면 델리게이트 정도는 정리하고 넘어가야 할 것 같습니다. 서적에서 왜 바로 이벤트부터 말해주지 않고 델리게이트를 먼저 설명하고 넘어가는지 글 작성자 입장이 되어 보고 나니 이해가 됩니다. 델리게이트란 ? 델리게이트는 함수를 저장하..