728x90

C# 81

System.Data.SqlClient

System.Data.SqlClientC#에서 SQL Server 데이터베이스에 연결하고 작업을 수행하는 데 사용되는 네임스페이스이다. 이 네임스페이스에는 SQL Server와 통신하는 데 필요한 클래스들이 포함되어 있으며, 데이터베이스 연결, 명령 실행, 데이터 읽기, 트랜잭션 관리 등의 기능을 제공한다.주요 클래스SqlConnectionSQL Server 데이터베이스에 대한 연결을 나타낸다.데이터베이스에 연결하려면 SqlConnection 객체를 사용한다. 연결 문자열을 제공하여 데이터베이스의 위치, 데이터베이스 이름, 인증 정보 등을 지정할 수 있다.SqlCommandSQL 쿼리나 저장 프로시저를 데이터베이스에 전달한다.SqlCommand를 사용하여 SQL 쿼리나 저장 프로시저를 실행할 수 있다.S..

언어/C# 2024.08.08

LINQ Count 메서드

LINQ Count 메서드IEnumerable 컬렉션의 요소를 쉽게 셀 수 있다.System.Linq 네임스페이스에 정의되어 있다.리스트의 요소 개수를 반환한다.성능 고려 사항컬렉션 타입에 따른 성능 차이Count 메서드는 ICollection 인터페이스를 구현한 컬렉션에서 O(1) 시간 복잡도를 가진다. 이는 Count 프로퍼티가 직접 제공되기 때문이다. 하지만 IEnumerable만을 구현한 컬렉션에서는 O(n) 시간 복잡도를 가지며, 모든 요소를 순회해야 한다.대안매우 큰 컬렉션의 경우 Count 대신 조건에 맞는 첫 번째 요소만을 확인하려면 Any 메서드를 사용하는 것이 더 효율적일 수 있다. 예를 들어, 조건을 만족하는 요소가 하나라도 존재하는지 확인하려면 Any를 사용할 수 있다.사용Count..

언어/C# 2024.08.08

IEnumerable<out T>

IEnumerableC#에서 제네릭 인터페이스 IEnumeable를 나타내며, 제네릭 타입 매개변수 T가 공변성(Covariance)을 가지는 것을 의미한다.공변성은 타입 계층에서 파생된 타입을 사용할 수 있게 해주는 기능으로, 이는 특히 인터페이스나 델리게이트에서 유용하게 쓰인다.IEnumerable 인터페이스컬렉션을 반복(iterate)할 수 있는 기능을 제공하는 제네릭 인터페이스이다.System.Collections.Generic 네임스페이스에 속하며, 다음과 같은 기본 멤버를 포함한다.IEnumerator GetEnumerator();이 인터페이스는 컬렉션의 요소에 대해 순차적으로 접근할 수 있는 기능을 제공한다. 예를 들어, foreach 문에서 IEnumerable를 사용하여 컬렉션의 모든 요..

언어/C# 2024.08.08

튜플(Tuple)

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

언어/C# 2024.08.08

System.Data.SqlClient.SqlException (0x80131904)

System.Data.SqlClient.SqlException (0x80131904)시간 제한 만료됨 오류‘시간 제한 만료됨’ 문제가 발생하면 다음 오류 메시지 중 하나 이상이 나타난다.시간 제한이 만료되었습니다. 작업이 완료되기 전에 제한 시간이 초과되었거나 서버가 응답하지 않습니다.System.Data.SqlClient.SqlException (0x80131904): 연견 시간 제한이 만료되었습니다. 사전 로그인 핸드셰이크 승인을 사용하는 동안 경과된 시간 제한 기간입니다. 이는 사전 로그인 핸드셰이크가 실패했거나 서버가 시간을 거슬러 응답할 수 없기 때문일 수 있습니다.이 서버에 연결하는 동안 소요된 기간: [사전 로그인] 초기화 =23; 핸드셰이크 = 14979;System.ComponentMod..

언어/C# 2024.08.08

System.Data.SqlClient.SqlConnection.OnError

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

언어/C# 2024.08.08

24.08.07 C#

24.08.07 C#C#Sealedsealed 클래스C#에서 클래스 또는 메서드에 적용할 수 있는 키워드로, 주로 상속과 관련된 기능을 제어하는 데 사용된다.sealed 키워드를 클래스에 적용하면 그 클래스를 상속할 수 없게 된다. 상속하려고 하면 컴파일러가 오류를 발생시킨다. 이는 특정 클래스가 더 이상 파생 클래스를 가질 필요가 없거나, 의도적으로 확장을 제한하고자 할 대 유용하다.sealed 메서드sealed 키워드는 메서드에도 사용할 수 있으며, 이 경우에는 override 키워드와 함께 사용된다. sealed 키워드를 사용해서 메서드를 재정의하면, 해당 메서드를 더 이상 하위 클래스에서 재정의할 수 없게 된다.사용 이유보안 및 무결성특정 클래스나 메서드가 더 이상 변경되지 않도록 하여 프로그램의..

SortedDictionary<TKey, TValue>

SortedDictionary.NET에서 제공하는 제네릭 컬렉션 클래스 중 하나로, 키와 값의 쌍을 저장하고 키를 기준으로 자동으로 정렬하는 사전(Dictionary)이다.이 클래스는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 키가 정렬 순서로 저장되어야 하는 시나리오에서 유용하다.주요 특징키의 정렬키를 기준으로 자동으로 정렬한다. 기본적으로 키는 기본 제공된 비교자(기본적으로 IComparable 구현 또는 지정된 IComparer)를 사용하여 정렬된다.키와 값의 쌍다른 사전 컬렉션과 마찬가지로 키와 값의 쌍을 저장한다. 각 키는 고유하며, 동일한 키를 두 번 저장할 수 없다.빠른 검색키에 대한 검색, 추가, 삭제가 모두 로그(log) 시간 내에 수행된다. 이는 내..

언어/C# 2024.08.07

yield return

yield returnC#에서 이터레이터 메서드를 구현할 때 사용되는 키워드이다.이터레이터 메서드는 IEnumerable 또는 IEnumerable를 구현하여 호출자가 요소를 순차적으로 반복(iterate)할 수 있도록 한다.yield return은 메서드의 실행을 멈추고 호출자에게 현재 값을 반환한 후, 다음 호출 시 해당 위치에서 실행을 재개할 수 있게 한다.주요 기능순차적 데이터 반환yield return을 사용하여 데이터를 하나씩 반환할 수 있다. 호출자는 이터레이터를 사용하여 데이터 시퀀스를 순차적으로 요청할 수 있다.상태 저장yield return은 메서드의 실행 상태를 저장한다. 이후 호출 시 저장된 상태에서 실행을 재개한다.지연된 실행이터레이터는 실제로 반복자에 의해 요청되기 전까지 실행되..

언어/C# 2024.08.07

델리게이트(Delegate)

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

언어/C# 2024.08.07
728x90