컴퓨터/C#

    | 니앙팽이 - C# | 2 | 참조 전달 [Ref & Out]

    🧑🏻‍💻 2. 메서드 매개 변수 함수의 Output은 꼭 Return으로 받지 않아도 된다. 매개 변수 인자가 리턴값이 된다면 어떻게 생각하나? static void SetValueRef(ref string str) { str = "refString"; } static void Main(string[] args) { string str1 = "initString"; Console.WriteLine("SetValueRef 메소드 호출 전: {0}", str1); SetValueRef(ref str1); Console.WriteLine("SetValueRef 메소드 호출 후: {0}\n", str1); } 결과는 다음과 같다. > SetValueRef 메소드 호출 전: initString SetValueRe..

    | 니앙팽이 - C# | 1 | 메모리 [ Stack&Heap / Value&Reference Type / Struct&Class / Boxing&UnBoxing / Garbage Collector ]

    🧑🏻‍💻 1. Memory 메모리 : 란 실행된 애플리케이션이 상주하는곳 CPU : 명렬어 처리를 위한 하드웨어 1. Stack과 Heap에대해 설명해보시오 2. Stack과 Heap이 어디에서 저장되는가? 3. 어떤것이 Stack에 저장되고 어떤것이 Heap에 저장되는가? 4. Stack과 Heap 사이즈에 대해 설명해보세요 5. Stack과 Heap메모리의 Deallocate 방식에 대해 설명하세요 6. 원시데이터과 참조데이터 은 메모리 각각에 어디에 저장 되는가? 7. 원시데이터도 Heap에 저장될 수 있을까? 8. string은 Stack에 저장될까, Heap에 저장될까? 9. 값타입과 참조타입에 대해 설명해보세요 10. Call By Value & Call By Reference 11. 값 복사..

    | 니앙팽이 - 이벤트(C#) | 5 | UnityEvent

    💡 5 UnityEvent유니티에서 이벤트를 사용해보자.다른 코드에 있는 함수를 가져오고 싶다.GameObject.Find(string ).Sendmessage(string ); 이거 대신 사용하고 싶다. 근데 문자열 하나 틀리면 디버깅해서 찾기도 어려울것이다..그냥 GameObject캐싱 하고 TryGetComponenet()쓰고 사용하죠 뭐.. 근데 이거 계속 쓰다보니 무수한 GetCom.. 가독성이 안좋다 생각이 들때.아니 하나 바꿨다고 다~~ 바꿔야 하는거야?? 커플링이 심각할때함수 실행에도 순서, 우열이 있다는것을 보장받고 싶을때.즉 순차적으로 실행되는것이 보장받고 싶을떄.뭐뭐 했을때~~~ 이거저거 실행하고 싶다!다음과 같은 생각이 스쳐 지나간다면 이벤트를 사용하는것을 추천한다!📄 1. 사전 지..

    | 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs

    💡 4 Event 소개이벤트를 발생시키면 그 이벤트에대해 반응한다.📄1. 용어정리Publisher(Sender, raise) : 이벤트를 정의하고 일으키는 주체인 클래스다.Subscriber(receiver, eventhandler) : 이벤트 발생시 작동하는 동작Client : Publisher, Subscriber 둘다 아니지만, 이 두개를 연결(구독)시키는 "코드.cs"📄 2. Eventhandler & Event & EventArgs1). Eventhandler#Subscriber #Method #이벤트 직후 반응하는 함수일단 함수다.① 형태, 구성요소public void HandlerFunction(object sender, EventArgs e){ /*...*/ } 이벤트 핸들러라면 다음과 같..

    | 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)

    💡 3. Event Action & Func📄 1. Action 대리자리턴값이없는 프로스저를 캡슐화 하는대리자를 정의한다.즉, 리턴값이 없는 함수를 대리자 사용하고 싶으면? Action Type을 사용하면 된다.1). Action 대리자 종류① Action 대리자는 다음 종류가 있다.리턴도, 매개변수도 없는 대리자Action _DelegateInstance_매개변수 하나정도 있는 대리자Action _DelegateInstance_매개변수 N개 있는 대리자Action _DelegateInstance_ 📄2. Action1). Action 사용 안했을때,public delegate void Del(); public static HelloWolrd() { Console.WriteLine("Hello World..

    | 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)

    💡 2. Event 델리게이트📄 1. 델리게이트란?대리자는 함수를 런타임에 바인딩하는 매커니즘을 제공한다. 대리자는 특정 매개 변수 목록 및 반환 형식이 있는 메서드에 대한 참조를 나타내는 형식입니다. C++의 함수 포인터와 유사하다. 다만 메서드를 안전하게 캡슐화하는 형식이다.1). 특징함수를 변수처럼 사용할 수 있다.함수를 담는 타입(int, float, bool 등등..)을 정의한다."Delegate Type"함수를 담는 Delegate Type에 대한 변수를 만들 수 있다."Delegate Instance"그 변수에 함수를 대입할 수 있다.Delegate Type 변수는 다른 함수의 패러미터로 사용될 수 있다.Delegate Type 배열그말은 즉슨 인덱스에 따라 함수가 달라지게 할 수 있다.De..

    | 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩

    💡 1. Event 개요 바인딩 📄 0. 용어정리 0). 가상함수 가상함수는 수퍼클래스를 상속하는 서브클래스에서 Override(함수 재정의) 할 것으로 기대하고 정의해놓은 함수다. ① 특징? Virtual 예약어를 사용해 함수 앞에 붙여서 생성할 수 있다. 다르게 말하면 Override되려면 Virtual 키워드가 붙여져 있어야 한다.class SuperClass { public virtual void Method(){Console.WriteLine("저는 부모클래스 메소드입니다.");} } class SubClass : SuperClass { public override void Method(){Console.WriteLine("저는 자식클래스 메소드입니다.");} } 런타임에 함수포인트 값이 정의 ..

    | 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발

    💡 1. 용어 정리📄 1. 프로세스 & 스레드프로세스메모리에 올라와 실행중인 프로그램 프로그램의 인스턴스스레드프로세스 내에서 할동받은 실행의 단위 경량 프로세스인 Light Weigh Process프로세스 VS 스레드스레드는 프로세스 내의 메모리 공간을 공유하지만 각각의 프로세스는 별도의 메모리 공간을 갖습니다.📄 2. 인터럽트(Interrupt)란?, 디스패처(Dispatcher)란?link : 인터럽트(Interrupt) & 디스패처(Dispatcher)Interrupt방해라는 뜻이 아니다.어떤 장치가 다른 장치의 일을 잠시 중단시키고 자신의 상태 변화를 알려 주는 것이다.이벤트(Event Invoke)와 동일하다.Dispatcher준비상태(Ready)에서 실행상태(Running)로 상태전이(Stat..

    | 니앙팽이 - C# | 1 | 어셈블리(Assembly)

    🔹 C# 어셈블리 🔹📄 1. 어셈블리가 뭐죠어셈블리어는 아니다. 컴파일되서 나온 파일을. C# 에서는 어셈블리(Assembly) 라고 부른다.exe, .dllexe 는 Main() 메서드를 포함하는(진입점) 형태이다.콘솔 실행이 가능하다. dll 은 반대로 진입점이 없는 형태이다.📄 2. ...그래서? 🤔✨ 이거 하나만 이해하자. ✨어셈블리가 같은 프로젝트여야 internal 한정자 접근이 가능하다!!...뭐가 대단한데📄 3. 어셈블리가 다른 [프로젝트 & 파일]GearHeart VS SoPhIA파일관점코드관점다른 exe라서다른 프로젝트라서우측 솔루션에 두개의 각각 코드의 Namespace가 다른것을 확인 할 수 있다.📄 4. 어셈블리가 같은 [프로젝트 & 파일]Namespace가 같은것이 같은 어셈블리..