728x90

C# 81

24.08.05 C#

C#튜플(Tuple)C#에서 여러 개의 값들을 하나의 값처럼 묶어 사용하는 데이터 구조이다.서로 다른 타입의 값들을 하나의 단위로 묶어서 처리할 수 있어, 메서드에서 여러 값을 반환하거나 임시 데이터 구조를 생성할 때 유용하게 사용된다.튜플을 값 타입이며, C# 7.0 이후로 개선된 ValueTuple 구조를 사용하여 더 간결하고 효율적으로 사용할 수 있다.특징불변성기본적으로 불변(immutable)이다. 한 번 값을 설정하면 수정할 수 없다.이는 다중 스레드 환경에서 데이터의 일관성을 유지하는 데 유용하다.값 타입힙이 아닌 스택에 할당되어 메모리 할당이 더 효율적이다.가변 길이튜플은 최대 8개의 요소를 가질 수 있으며, 필요에 따라 더 많은 요소를 중첩 튜플로 확장할 수 있다.명명된 요소C# 7.0 이..

HashSet<T>

HashSet고유한 요소의 집합을 저장하는 컬렉션이다.중복을 허용하지 않으며, 각 요소는 고유해야 한다. 내부적으로 해시 테이블을 사용하여 요소를 저장하므로, 요소의 추가, 삭제, 검색 등이 평균적으로 매우 빠르게 수행된다.특징고유성동일한 요소가 여러 번 추가될 수 없으며, 요소의 고유성을 유지한다.빠른 검색해시 테이블을 사용하므로 평균적으로 O(1)의 시간 복잡도로 요소를 찾을 수 있다.정렬되지 않음HashSet의 요소는 특정 순서로 정렬되지 않는다.집합 연산HashSet은 집합 연산을 효율적으로 수행할 수 있는 다양한 메서드를 제공한다.교집합, 합집합, 차집합 등의 연산을 할 수 있다.

언어/C# 2024.08.05

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

SequenceEqual(IEnumerable, IEnumerable)해당 형식에 대한 기본 같음 비교자를 통해 요소를 비교하여 두 시퀀스가 서로 같은지 확인한다.형식 매개변수TSource입력 시퀀스 요소의 형식이다.매개변수First IEnumerable: second와 비교할 IEnumerable 이다.Second IEnumerable : first와 비교할 IEnumerable 이다.반환Boolean두 소스 시퀀스의 길이가 같고 해당 형식의 기본 같음 비교자에 따라 상응하는 요소가 서로 같으면 true, 그렇지 않으면 false 이다.매개변수가 하나만 들어가는 경우두 시퀀스를 비교할 때 현재 컬렉션과 매개변수로 전달된 컬렉션을 비교하는 것이다.특징기본적으로 요소의 타입에 정의된 equality c..

언어/C# 2024.08.05

24.08.02 C#, DEV

24.08.02 C#, DEVC#System.Data.SqlClient.SqlConnection.OnErrorADO.NET의 SqlConnection 클래스에서 발생한 오류를 처리하기 위한 내부 메서드이다.이 메서드는 SQL 서버와의 연결 중 오류가 발생했을 때 호출된다. 특히 OnError 메서드는 데이터베이스 작업 중 발생한 예외(SqlException)를 처리하고, 필요시 연결을 중단하거나 다른 후속 작업을 처리할 수 있도록 하는 역할을 한다.이 메서드는 SqlConnection 클래스의 내부 메서드이므로 직접 호출하거나 오버라이드할 수는 없다. 주로 SqlConnection 객체와 관련된 예외 처리 흐름의 일부로 사용되며, 개발자가 직접적으로 사용하는 경우는 드물다. 예외가 발생했을 때의 로그 또..

24.08.01 C#, 데이터베이스 샤딩

C#델리게이트(Delegate)메서드를 참조할 수 있는 형식 안전한 개체이다.델리게이트는 메서드를 변수처럼 저장할 수 있게 해주며, 메서드에 대한 참조를 호출 시점까지 연기하여 동적으로 메서드를 호출할 수 있는 유연성을 제공한다. 이는 콜백 함수, 이벤트 처리기 및 기타 다양한 패턴에서 유용하게 사용할 수 있다.델리게이트의 주요 특징형식 안정성델리게이트는 특정 메서드 시그니처(반환 타입과 매개변수 목록)를 정의한다.델리게이트가 참조할 수 있는 메서드는 반드시 이 시그니처와 일치해야 한다.다중 캐스팅델리게이트는 여러 메서드를 호출할 수 있다.델리게이트 인스턴스에 여러 메서드를 추가하면, 델리게이트를 호출할 때 해당 메서드들이 차례로 호출된다.익명 메서드 및 람다식 지원델리게이트는 익명 메서드 또는 람다식과..

추상 클래스(abstract class)

추상 클래스(abstract class)다른 클래스들이 상속 받을 수 있는 클래스이다. 추상 클래스 자체는 인스턴스화할 수 없으며 주로 공통된 기능이나 인터페이스를 정의하는 데 사용한다.추상 메서드(abstract method)추상 클래스 내에서 선언되며, 메서드 본체를 가지지 않는다.파생 클래스에서 반드시 해당 메서드를 구현해야 한다.주의사항추상 클래스는 인스턴스화할 수 없다추상 클래스는 추상 메서드를 가질 수 있지만, 추상 메서드가 없어도 추상 클래스로 선언할 수 있다.추상 메서드는 오직 추상 클래스 내에서만 선언될 수 있다.추상 클래스는 일반 메서드와 속성도 가질 수 있다.추상 메서드는 파생 클래스에서 반드시 구현해야 한다.

언어/C# 2024.08.01

Task.FromResult

Task.FromResultC#에서 비동기 프로그래밍을 할 때 사용되는 유용한 메서드이다.이미 알고 있는 결과 값으로 완료된 TASK를 생성한다.동기 작업을 비동기 메서드의 결과로 반환해야 할 때 유용하다.특징이미 완료된 상태의 Task를 반환한다.CPU 작업이나 I/O 작업을 기다리지 않는다.스레드 풀을 사용하지 않는다.사용 예캐시된 결과를 반환할 때단위 테스트에서 모의 객체(mock)를 만들 때비동기 인터페이스를 구현하지만 실제로는 동기 작업을 수행할 때성능새로운 Task 객체를 생성하는 것보다 효율적이다.이미 알고 있는 값으로 Task를 생성할 때 최적화된 방법이다.

언어/C# 2024.08.01

GUID(Globally Unique Identifier)

GUID(Globally Unique Identifier)전 세계적으로 유일한 값을 생성하기 위한 표준으로, 주로 소프트웨어에서 고유한 식별자를 생성하는 데 사용된다.Microsoft에서 처음 도입됐으며, 다른 시스템에서는 UUID(Universally Unique Identifier)로도 알려져 있다.128비트의 숫자이며, 일반적으로 32자리 16진수로 표현된다.형식32자리 16진수로 표현되며, 하이픈(’-’)으로 구분된 5개의 그룹으로 나뉜다.ex)123e4567-e89b-12d3-a456-426614174000이 형식은 다음과 같이 구분된다.첫 번째 그룹 : 8자리두 번째 그룹 : 4자리세 번째 그룹 : 4자리네 번째 그룹 : 4자리다섯 번째 그룹 : 12자리사용 예데이터베이스의 기본 키, 소프트웨..

언어/C# 2024.08.01

DebuggerNonUserCodeAttribute, GerneratedCodeAttribute, RepeatedField

DebuggerNonUserCodeAttribute디버거가 코드의 특정 부분을 사용자 코드가 아닌 것으로 처리하도록 지정하는 데 사용된다.이 속성이 적용된 메서드, 속성 또는 클래스는 디버깅 세션에서 자동으로 무시된다.주로 코드 생성 도구가 생성한 코드나 라이브러리 코드를 디버깅할 때 사용자에게 불필요한 디버깅 정보가 노출되는 것을 방지하는 데 사용된다.효과디버깅 세션 중에 이 메서드나 클래스에 대한 스택 추적이 생략된다.예외가 발생하더라도 디버거는 이 코드의 내부로 들어가지 않고 사용자 코드로 이동한다.디버거가 해당 코드의 중단점(breakpoint)을 무시한다.GerneratedCodeAttribute코드가 도구에 의해 생성되었음을 나타내는 속성이다. 이 속성은 코드 분석 도구와 같은 도구가 생성된 ..

언어/C# 2024.08.01
728x90