전체 글
-
[TIL]C# Json 리스트 저장TIL 2024. 5. 2. 22:15
어제는 단순히 변수만 Json 파일에 불러오고 저장하는 것을 해봤다.변수 저장과 호출은 해결했지만 리스트나 다른 자료구조를 저장해야 할 때는 어떻게 해야할까? 원래 썼던 코드더보기static string filePath = "./Save/SaveFile.json";static public void Save(Player player)//현재는 플레이어 스텟만 저장{ JObject Save = new JObject( new JProperty("playerName", player.name), new JProperty("playerJob", player.job), new JProperty("playerLevel", player.level), new JPropert..
-
[TIL] C# (얇은 복사 깊은 복사, Json 파일 이용하여 저장하기)TIL 2024. 5. 1. 22:46
1. 얉은 복사 깊은 복사class에 몬스터를 정의하고 던전에 몬스터를 추가해서 스폰할 몬스터를 정의했을 때 이상한 오류를 발견했다.1. 같은 종류의 몬스터가 있으면 피가 2번단다.2. 던전을 끝내고서도 몬스터의 피가 달아있다. 처음에는 전투중에 뭔가 잘못해서 그런줄 알았지만. 알고보니 던전에서 사용할 몬스터를 생성하는 함수에 문제가 있다는걸 알아차렸다. 문제의 스크립트 더보기 public Monster[] GenerateMonster()//몬스터 생성 { Random random = new Random(); int monsterCount = random.Next(1, 5); Monster[] battleMonster = new Monster[monsterCount]; for..
-
[TIL]2024-04-30 VisualStudioTIL 2024. 4. 30. 21:20
VisualStudio C# 1. CS5001 error비주얼 스튜디오에서 .cs를 추가하게 되면 기본적으로 이런식으로 추가하게 된다.여기서 클래스 앞에 internal 이라고 선언되어 있는 것을 확인할 수 있다.그렇다면 internal이 뭘까? internal은 형식 및 형식 멤버에 대한 액세스 한정자라고 한다.즉 Public, Protected, Private 랑 비슷한 키워드 인것이다. internal은 액세스가 현재 에셈블리로 제한된다.(하지만 솔직히 정확한 범위는 저도 잘 모르겠습니다.) 이 오류를 발견한건 다른 .cs 선언할 때 였고 internal 대신 public으로 써서 해결했다. 2. 깃허브 연동시 표시 마크깃허브로 연동을 했다면 .cs 의 맨앞에 이상한 마크가 생기는 것을 알 수 있다..
-
[TIL]특강 (C#, 코드컨벤션,깃허브)TIL 2024. 4. 29. 21:35
C# 배열과 리스트C# 에서 리스트는 조금 다른점이 있는데C# 에서 List는 동적 배열과 유사하다. Capacity: 리스트의 최대 용량Count : 리스트의 실제 갯수 C#에서는 리스트는 배열이기 때문에 Capacity를 넘어가게 되면 재할당이 일어나게 된다.따라서 리스트에 변수가 어느정도 들어갈지안다면, Capacity를 선언해주는 편이 좋다.https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.capacity?redirectedfrom=MSDN&view=netframework-4.7.2#System_Collections_Generic_List_1_Capacity.Capacity Property (System..
-
[TIL]C# 알고리즘TIL 2024. 4. 28. 18:07
알고리즘문제를 해결하기 위한 단계적인 방법개념 알고리즘은 문제를 해결하기 위한 명확한 절차나 방법 알고리즘은 주어진 입력에 대해 정확하고 일관된 결과를 제공해야 함 프로그래밍뿐만 아니라 다양한 분야에서 사용중요성 효율적인 알고리즘은 프로그래밍에서 매우 중요 같은 문제를 해결하는 알고리즘이 있다면 효율적인 알고리즘은 더 적은 컴퓨팅 자원(시간, 메모리 등)을 사용한다. 따라서 가능한 효율적인 알고리즘을 사용Big O 표기법알고리즘의 효율성을 나타내는 표기법입력의 크기에 따라 얼마나 많은 시간이나 공간을 필요하는지 설명 알고리즘의 최악의 경우 성능을 나타내므로 효율성을 과장하지 않는다.O(1): 상수 시간, 입력의 크기에 상관없이 항상 일정한 시간이 걸림 O(n): 선형 시간, 입력의 크기에 비례하여 시간이..
-
[TIL]C# 문법 4TIL 2024. 4. 26. 21:02
값형과 참조형C#에서 변수가 데이터를 저장하는 방식 1.값형(value Typue)변수에 값을 직접 저장변수가 실제 데이터를 보유하고 있으며, 다른 변수에 할당하거나 전달할 때는 값이 복사ex) int, float ,double, bool2. 참조형(Reference Type)변수가 데이터에 대한 참조(메모리 주소)를 저장참조형 변수의 수정은 동일한 데이터를 가리키고 있는 다른 변수에 영향을 끼친다.ex) 클래스, 배열, 인터페이스 등 값형과 참조형의 차이점값형은 실제 데이터를 변수에 저장, 참조형은 데이터에 대한 참조를 변수에 저장값형은 변수 간 값 복사가 이루어지고, 참조형은 변수 간의 참조 복사값형은 독립적으로 데이터를 가짐, 참조형은 변수가 동일한 데이터를 참조 박싱과 언박싱값형과 참조형 사이의 ..
-
[TIL]C# 강의 과제 정리TIL 2024. 4. 25. 21:21
2강 과제더보기2 -1 숫자맞추기 게임static void RandomNum(){ Random random = new Random(); int numberToGuess = random.Next(1, 101); int count = 0; Console.WriteLine("숫자 맞추기 게임을 시작합니다. 1에서 100까지의 숫자 중 하나를 맞춰보세요."); while (true) { Console.Write("숫자를 입력하세요: "); int i = int.Parse(Console.ReadLine()); count++; if (i == numberToGuess) { Console.Write("축..
-
[TIL]C#문법3TIL 2024. 4. 24. 21:23
다중 상속을 사용하지 않는이유- 다이아몬드문제(Diamond Problem)한 클래스가 두 개 이상의 부모로부터 동일한 멤버를 상속받을 수 있고 같은 이름일 경우 모호해진다.- 설계의 복잡성 증가클래스 간의 관계가 복잡해진다. 어떤 클래스로부터 어떤 멤버를 상속받을지 결정해야 하고 이로 인해 클래스 간의 상속 관계를 파악하기 어려워지고 유지보수성이 저하된다.- 이름 충돌과 충돌 해결의 어려움여러 부모 클래스로부터 상속받은 멤버들이 이름이 충돌하여 명시적으로 부모 클래스를 지정해야 하거나 멤버를 재정의 해야함. 코드의 복잡성 증가- 설계의 일관성과 단순성 유지C#은 단일 상속을 통해 설계의 일관성과 단순성을 유지하려 한다. 단일 상속을 해야 클래스 간의 관계를 명확하게 하고 코드의 가독성..