본문 바로가기

언어6

Delegate와 Action, Func, Predicate 보호되어 있는 글 입니다. 2023. 7. 20.
IEnumerable과 foreach문의 관계 보호되어 있는 글 입니다. 2023. 7. 19.
accumulate의 사용법과 활용 https://cplusplus.com/reference/numeric/accumulate/ function template std::accumulate sum (1)template T accumulate (InputIterator first, InputIterator last, T init);custom (2)template T accumulate (InputIterator first, InputIterator last, T init, BinaryOperation binary_op); Accumulate values in ra cplusplus.com accumulate는 컨테이너 내부의 원소들에 대하여 누적 값을 구할 때 사용된다. 값은 무엇이든 될 수 있다. 기본적으론 합을 구하지만 아래와 같이 곱.. 2023. 5. 15.
C#의 동작 원리 위 그림만으로도 거의 모든 설명이 가능할 듯한데, 요약하자면 1. C#은 컴파일러에 의해 Common Intermediate Language(CIL 혹은 IL, MSIL)로 컴파일된다. 2. IL은 Common Language Runtime(CLR) 상의 컴파일러에 의해 네이티브 코드로 컴파일된다. 라고 정리할 수 있다. 아래는 부연설명이다. 1. Common Language Infrastructure(CLI)는 마이크로소프트에서 개발한 표준이다. CLI는 다양한 요소들로 구성되어 있는데, 크게는 언어적인 요소와 시스템적인 요소로 구분할 수 있다. .NET은 이러한 CLI의 가장 대표적인 구현체로서 각각의 요소를 IL과 CLR로 칭하고 있다. 2. .NET을 기반으로 하는 언어들은 C#, VB, F# 등.. 2023. 2. 3.
C#에서 배열을 부분 참조하는 방법 소켓 프로그래밍을 공부하다 알게 된 내용인데, 과연 다른 곳에 써먹을 일이 있을까 싶지만, 아무튼... C#의 배열은 기본적으로 참조 타입이므로 아래와 같은 작업이 가능하다. class Program { static void Main() { int[] arr1 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] arr2 = arr1; Console.WriteLine($"{arr1[0]} {arr2[0]}"); arr1[0] = 123; Console.WriteLine($"{arr1[0]} {arr2[0]}"); } } 위 코드처럼 arr2 에 arr1 을 대입하면 두 변수는 동일한 배열을 참조하게 되는 것을 알 수 있다. (참고로 C++에서는 복사 생성자가 호.. 2022. 12. 29.
비교-정렬을 위한 두 인터페이스, IComparable과 IComparer IComparable 과 IComparer 는 비슷한 일을 하지만 근본적인 차이가 있다. 이 게시글에서는 두 인터페이스의 용도와 차이에 대해 알아볼 것이다. IComparable C#의 커스텀 클래스는 기본적으로 "비교 불가능"이다. 객체의 수많은 정보들 중에서 무엇을 기준으로 해야 할지 모르기 때문이다. public class Person { public string Name { get; } public int Age { get; } public Person(string name, int age) { Name = name; Age = age; } } class Program { static void Main() { Person jack = new Person("Jack", 20); Person john.. 2022. 10. 2.