본문 바로가기
728x90
반응형

C#72

C#] Method Parameters - parameters 전달 C#에서 arguments는 value 또는 reference로 parameter로 전달될 수 있다. C# types은 reference type(class) 이거나 value type(struct)일 수 있다. value 전달은 변수의 copy를 함수로 전달한다는 의미이다. reference 전달은 변수 접근을 함수로 전달한다는 의미이다. reference type의 변수는 데이터의 reference를 포함한다. value type의 변수는 데이터를 직접 포함한다. struct는 value type이기 때문에, 함수에 struct를 전달할 때, 함수는 struct arguments의 copy를 받아 처리한다. 함수는 호출한 함수의 원본 struct에 접근할 수 없으므로, 수정할 수 없다. 함수는 오직 .. 2023. 8. 22.
C#] type, System.Type, System.Reflection type : string, int, float, double 등등... 변수와 상수가 갖는 type이다. 함수는 type 형식의 parameters를 전달받고 values를 반환할 수 있다. type에는 여러 카테고리가 있는데, built-in value types, built-in reference types가 대부분이다. System.Type : type에 상관없이 object, variables, constants에 reflect할 수 있는 함수를 제공한다. Reflection : OOP에서 우리는 class, struct 와 같은 model을 사용하여 object의 성격과 행동을 정의한다. 이러한 model을 설명하는 data를 metadata라고 한다. runtime에서 Reflection이라 .. 2023. 6. 19.
C#] System.Collections.Immutable 출처 : https://code-maze.com/csharp-immutable-collections/ mutable과 immutable은 can change, cannot change의 뜻을 각각 가진다. 이 의미는 C#에서도 동일하다. mutable object 값을 변경할 때, 값은 같은 메모리에서 변경된다. 하지만 immutable type은 새로운 memory가 생성되며 변경된 값을 저장한다. String : immutable existing string 값을 변경하면, 새로운 object가 생성되고 기존 object는 참조하지 않는다. 따라서 지속적으로 값을 변경할 경우, unreferenced object 값이 늘어나고 garbage collector가 동작할때까지 application per.. 2023. 5. 18.
C#] Asynchronous VS Multithreading 출처 : https://code-maze.com/csharp-async-vs-multithreading/ 병렬 프로그래밍의 두가지 주요 기술인 비동기와 멀티스레드에 대해서 알아보자. Asynchronous Programming 비동기 프로그래밍은 메인 프로그래밍의 흐름과 독립적으로 statements set이 실행되는 병렬프로그래밍 형태이다. 프로그램에 blocking operation을 갖고 있을 때, 결과 대기 없이 프로그래밍의 실행을 계속하고 싶을 때 사용한다. 동시에 tasks를 실행할 수 있도록 한다. C#에서는 async, await 키워드로 비동기 프로그래밍을 할 수 있다. Multithreading thread는 프로그램 내에서 하나의 지속되는 흐름이다. Multithreading은 pro.. 2023. 4. 25.
C#] 특수문자 (주석, $, @) Comments C#은 2가지 형식의 주석을 지원한다. Single line 주석은 // 으로 시작해서 code line의 끝에서 종료한다. Multiline 주석은 /* 로 시작해서 */로 끝난다. $을 사용한 String interpolation string name = "Mark"; var date = DateTime.Now; // Composite formatting: Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date); // String interpolation: Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it'.. 2023. 3. 21.
.NET] DTO vs POCO 차이점 DTO Data Transfer Object 데이터 전달의 목적을 가진 object이다. DTO는 data만 가지고 있어야 하며, 로직이나 기능은 없다. DTO가 logic(보통 함수에 해당한다.)을 가지고 있다면, DTO가 아니다. DTO는 properties만 있어야 하며, 이 properties는 get, set data만 가지며, validate를 하거나 다른 동작을 실행하지 않는다. attributes, data annotations 사용은? DTO에서 사용하지 않는다. attribute가 DTO 자체에 behavior를 추가하는 것은 아니지만, 시스템 다른 곳에서 동작할 수 있게 해주기 때문이다. ViewModels, API models? DTO라는 용어가 모호하다. object는 오직 dat.. 2023. 2. 9.
728x90
반응형