C# Study/C# 기초 맨텀 2021. 4. 8. 20:26
탐색 메서드 IndexOf( ) 지정된 문자 또는 문자열의 위치 반환 LastIndexOf( ) 지정된 문자 또는 문자열의 위치를 뒤에서부터 반환 StartsWith( ) 특정 문자열로 시작하는지를 평가 EndsWith( ) 특정 문자열로 끝나는지를 평가 Contains( ) 특정 문자열을 포함하는지를 평가 Replace( ) 특정 문자열을 모두 다른 문자열로 바꾸고 바뀐 전체 문자열을 반환 변형 메서드 - 그 자체를 바꾸는 게 아니라, 새 문자열을 반환함에 주의. ToLower( ) 모든 문자를 소문자로 바꾸고, 새 문자열을 반환. ToUpper( ) 모든 문자를 대문자로 바꾸고, 새 문자열을 반환. Insert( ) 지정 위치에 특정 문자열을 삽입하고, 새 문자열을 반환 Remove( ) 지정 위치부..
C# Study/C# 기초 맨텀 2021. 4. 8. 17:52
스택 메모리 - 값 형식을 저장하는 영역 - 코드 블록 안에서 생성된 변수들은 블록이 닫히면 메모리에서 제거됨 힙 메모리 - 참조 형식을 저장하는 영역 - 자동으로 제거되지 않으며, 가비지 컬렉터가 수거함 - 코드 블록이 사라지는 시점과 관계없이 데이터를 유지하고 싶을 때 사용 값 형식의 변수 - 스택 영역에 값을 저장함. { int variable = 1; } 참조 형식의 변수 - 힙과 스택을 동시에 사용함. - 힙 영역에는 데이터를 저장 - 스택 영역에는 데이터가 저장되어있는 힙 메모리의 주소를 저장 { object temp = 1; } - 힙에는 1을 저장하고, temp는 값이 저장된 힙의 주소만 스택에 저장함 - 코드 블록이 끝나면 주소 값을 저장한 스택 영역은 사라진다. - 참조가 없어진 1은 ..
C# Study/C# 케이스 스터디 맨텀 2020. 7. 13. 18:38
MS 프로그래밍 가이드 : 인덱서 사용 https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/indexers/using-indexers # 무엇인가요 간단히 말해서 클래스 내부에 있는 특정 값들을 배열처럼 접근 가능하게 해준다. 프로퍼티와 많은 부분에서 유사. 구문을 간소화하여 클래스와 해당 용도를 다른 개발자가 이해하기 쉽게 만든다. # 사용 방법 아래와 같이 this 키워드를 사용하여 구현. public int this[int index] // Indexer declaration { // get and set accessors } 프로퍼티와 비슷하게 Get과 Set을 사용한다. set은 제한적으로 사용하길 바람. public float t..
C# Study/C# 케이스 스터디 맨텀 2019. 12. 15. 21:48
Dictionary에 담은 원소들을 한개씩 삭제해가면서 삭제가 성공하면 다른 리스트에 담는 방식을 구현해야하는 경우가 있다. public Dictionary temporalItemDic; public void InventoryFinalize() { foreach (var item in temporalItemDic) { if (temporalItemDic.Remove(item.Key)) AddItem(item.Key, item.Value); } } 하지만, 위와 같은 enumeration에서 원소삭제는 Exception오류를 일으킨다! 이런 문제 때문에 리스트 등에서는 for문으로 맨 뒤에서부터 체크해야한다. for (int i = monsterList.Count - 1; i >= 0; i--) { if ..
C# Study/C# 케이스 스터디 맨텀 2019. 12. 13. 23:51
마이크로소프트 params(C# 참조) https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/params # 인자를 여러개 보내고 싶다 public int Sum(int a, int b) { return a + b; } public int Sum(int a, int b, int c) { return a + b + c; } ...... 인자가 정해져 있지 않은경우 여러개의 숫자를 합치는 함수를 위와 같이 구현해 볼 수 있을 것이다. 좋지않다. 결국에는 같은 내용인데 반복적으로 만들 뿐이다. 여기서 필요한게 params 이다. # 인수의 갯수가 정해지지 않은 경우의 초기화 매개변수의 형식 앞에 params를 붙여주면 가변 개수의..
C# Study/C# 케이스 스터디 맨텀 2019. 12. 12. 23:52
문제점 생성자를 이용하여 초기화할 때, 직접 초기화하고 싶지 않은 값들이 있다. 선택적 매개 변수를 사용하면 어떨까? 선택적 매개변수를 사용한다면 다음과 같은 형식이 된다. public StatModifier(float value, StatModType type, int order = 1, object source = null) { Value = value; Type = type; Order = order; Source = source; } 하지만 선택적 매개변수는 모든 필수 매개변수 다음에 와야한다는 규칙이 있기 때문에 유연하지 못하다. 생성자 오버로딩! 생성자를 오버로딩해서 만들어두면, 입력받은 매개변수로 다른매개변수를 할당하는 등 꽤나 유연한 생성이 가능하다. public class StatModi..