C# 14

[C#] IEnumerator, IEnumerable과 yield에 대해.

유니티의 코루틴을 사용하게 되면서.. 어쩌다보니 알아보게 되었다. 목적- 객체를 C++의 Iterator와 비슷하게 사용하기 위한 것이다. IEnumerable과 IEnumerator 인터페이스 정의- MSDN 참고 : https://msdn.microsoft.com/ko-kr/library/65zzykke(v=vs.100).aspxpublic interface IEnumerable{ IEnumerator GetEnumerator();} public interface IEnumerator{ object Current { get; } bool MoveNext(); void Reset();}yield return [x] : 현재 상태 저장후 값 반환yield break : 루프 탈출-> yield MSDN ..

C# 2017.02.08

[C#][MSDN] C# Event 발행자(publisher)와 구독자(subscriber) 방식, 옵저버 패턴에 대해

처음엔 옵저버 패턴과 같은 줄 알았는데, 아니었다.(비슷함) 다음은 옵저버 패턴의 UML이다. 위의 구조를 보면, 옵저버 패턴에서는 notifyObservers() 함수 내에서 루프를 돌며(물론 모든 옵저버 패턴이 무조건 루프 방식은 아닐 수도 있지만) 모든 옵저버들의 내용을 갱신한다. 파생 옵저버들(이런저런 구독자들이라 할 수 있음)은 Observer 클래스를 부모로 가지고 있어야 하며, 꼭 Subject 클래스 내부에서 어떤 식으로든 참조할 수 있어야 한다. 하지만 C# Event 발행자/구독자 방식은 조금 다르다. 발행자는 구독자에게 자신의 이벤트 처리 방식을 넣어 준다. 즉, 구독자는 그저 자신이 어떤 행동을 했을 때 원하는 결과가 나오도록 해 주는 발행자를 선택하면 되는 것이다. 그래서 발행자는..

C# 2016.08.21

[스크랩][C#] NULL 처리된 객체가 Garbage collector에 의해 수집되지 않는 현상

원문 : http://www.sysnet.pe.kr/2/0/10920 C# 메모리 관리와 관련된 자세한 내용을 알아보는 중 다음과 같은 글이 있었다. GC(가비지컬렉터)의 동작에 관한 내용. 다음과 같은 질문이 있군요. C# WeakReference이 CPU 플랫폼 설정 마다 결과가 틀리게 나옵니다. ; http://www.sysnet.pe.kr/3/0/4702 문제를 정리해 보면, 다음과 같이 코딩을 한 경우 (제 환경에서) Debug 빌드로 하면 Target이 살아 있는 걸로 나옵니다. // .NET 4.5.2 + Debug 빌드 테스트 (x86/x64) public class Man { public string Name { get; private set; } public Man(string name..

C# 2016.08.21

C# char, sbyte

C#은 유니코드 문자를 사용한다. 그렇기 때문에 C#서는 char형이 2바이트다. 1바이트 부호있는 정수 자료형을 사용하려면 sbyte라는 자료형을 써야 한다. ---------------------------------sbyte(C# 참조)Visual Studio 2008다른 버전이 항목은 아직 평가되지 않았습니다.- 이 항목 평가업데이트: 2007년 11월sbyte 키워드는 다음 표에 표시된 크기와 범위에 따라 값을 저장하는 정수 계열 형식을 나타냅니다.형식범위크기.NET Framework 형식sbyte-128 ~ 127부호 있는 8비트 정수System.SByte리터럴변환sbyte에서 short, int, long, float, double 또는 decimal로의 미리 정의된 암시적 변환이 있습니다...

C# 2013.01.17
반응형