반응형

DEV 26

인터페이스 IEnumerator 와 IEnumerable의 차이

반복자(iterator)에 대한 C#에서 제공하는 인터페이스 세트 foreach를 사용하기 위한 공통 인터페이스를 제공하는데 IEnumerable 클래스이다. IEnumerable + GetEnumerator GetEnumerator는 IEnumerator를 리턴 값으로 가지게 되는데 이 IEnumerator라는 클래스는 쉽게 말해서 땅바닥에 물건들이 널려있다고 가정할때 물건을 가르키는 손가락 같은 역할을 하게된다. IEnumerator + Current + MoveNext + Reset 3가지의 구현해야하는 공통메소드가 있으며, 현재 시점의 개체와 다음 개체, 그리고 현재의 가리키는 손가락을 처음으로 되돌리는, 3가지 약속된 역할을 하는 메소드가 정의되어 있다. 또한 IEnumator를 리턴값으로 뒀을..

DEV/Unity C# 2019.05.09

[GAME] 경직치에 대한 단어 선택에 대해서

한국에서 어떤 상태에 이르기 위한 누적치를 단어로 표현하라고 하면 대개 '경직치' 라고 많이 표현한다. (적어도 나는 그렇게 자주 썻던거 같다) 코드로 표현할때는 영어단어를 선택해야 하고, 한번도 고민해 본적이 없었기 때문에 구글에 쳐봤더니 이렇게 뜨는데 과연 이게 이렇게 쓰는 말이 맞나 싶었다. 경직치라는 말을 어디서 가장 많이 봤던걸까 하면서 거슬러 올라가보니 몬스터 헌터 월드 게임에서 이런 표현을 많이 썼다는 기억을 떠올리고 mhw wiki로 찾아 들어가니 이런 이야기가 있다. 걔중에 blunt damage, buildup damage란 표현이 눈에 띄는데 대충 해석을하면 스턴효과가 발생하는데 몬스터 머리에 둔기류 무기 데미지가 쌓이면 buildup이 쌓인다. 쌓여서 스턴이 발생한다... 라고 되어..

DEV/단어선택 2019.05.05

[C#] how to convert string[] to int[]? 배열 캐스트 변환에 대하여

알고리즘을 풀다가 인풋을 받아서 문자열을 다른 값들로 캐스트 하고자 할 경우 예를 들어서, "45,23,5,4,1,123,58,7,71,11" 이런 값의 인풋을 받았다고 쳤을때, string.split(','); 을 사용하면 string[]이 나오게 되는데, 함수 파라미터로 넘겨서 사용하기 전에 int[]로 변환해야 한다면? for문으로 다 넘겨도 좋지만 코드 한줄로 넘겨준다면 기분좋을거 같다. 당연히 있다. 특정 를 로 변환해주는 함수다. 아래 코드처럼 사용하면 된다. int[] result = Array.ConvertAll( string[] input, ( e ) => int.Parse(e));

DEV/Unity C# 2019.05.02

[VBA]Excel VBA 문자열 정렬 관련

파일명을 리스트로 담아두는 컨테이너를 사용할시에 생기는 문제였는데, ex) "abc1" "abc2" "abc3" "abc11" "abc10" 라는 문자들이 들어가서 엑셀의 이름순 정렬이 들어갔을 때, "abc1" "abc10" "abc11" "abc2" "abc3" 이러한 식으로 정렬이 되어버린다. 그래서 문자열 비교를 하여 따로 정렬해 주어야 했다.(안타깝게도 따로 정렬하는 함수는 없는듯 하다) '문자열의 길이가 같을때에 If StrLen(문자열1) = StrLen(문자열2) Then '0은 두 문자의 비교가 같음을, 1이면 문자열1이 문자열2 다음 순서임을 의미한다 If StrComp(문자열1, 문자열2) = 1 Then Swap(문자열1, 문자열2) End If End If

DEV/VBA 2019.04.29

Column code가 페이지를 넘어갈 때 유용한 설정 단축키

이런 경우가 발생할때 이 경우에 유용하게 사용할만한 단축키가 있다. Ctrl + E, Ctrl + W 단축키를 사용하면 column이 페이지를 넘어가면 다음 줄로 자동으로 넘겨준다. 실제로 넘어가는게 아니고 눈에 보이기로만 넘어간 것처럼 보이게 된다. 가로 스크롤뷰가 생기지 않기 때문에 코드를 한눈에 볼수 있어서 좀 더 깔끔해진다. Visual Studio 2017, Visual Studio 2019 에서 되는 것을 확인했다.

DEV/Visual Studio 2019.04.28

[STL] cin, getline 사이에 twice enter issue

문자열 입력을 받기 위해서, cin과 get line을 동시 사용하는 경우에 cin을 위에다가 쓰고 getline을 밑에다가 썼을 때에 cin에서 받은 버퍼의 '\n'가 버퍼에서 남아 있다가, getline 함수에서 읽어 들여 버려서 getline 함수가 실행되자마자 개행 문자로 인해서 입력을 받지 못하는 문제가 발생하였다. 이런 경우 cin 함수 밑 부분에서 cin.ignore() 함수를 사용해주면 된다. 인자값의 정보에 대한 숙지가 이 문제를 해결하는 데에는 크게 의미가 있진 않으므로 std::istream::ignore

DEV/C++ 2015.03.10
반응형