728x90

TIL 259

24.08.07 C#

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

24.08.06 C#, 젠킨스

C#Datatime 연산주로 사용되는 연산날짜 간 차이 계산DateTime 객체를 서로 빼면 TimeSpan 객체가 반환된다.DateTime date1 = new DateTime(2023, 1, 1);DateTime date2 = new DateTime(2023, 12, 31);TimeSpan difference = date2 - date1;Console.WriteLine($"Days between: {difference.Days}");날짜에 시간 더하기/빼기DateTime에 TimeSpan을 더하거나 뺄 수 있다.DateTime now = DateTime.Now;DateTime future = now.AddDays(7);DateTime past = now.AddHours(-3);날짜 비교DateTime..

24.08.05 C#

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

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

24.07.31 C#

C#Environment.ProcessorCountC#에서 현재 시스템의 논리 프로세서(코어) 수를 반환하는 속성이다.이 속성은 .NET의 System 네임스페이스에 포함되어 있으며, 멀티 스레딩 또는 병렬 작업을 최적화할 때 유용하게 사용할 수 있다.논리 프로세서와 물리 프로세서논리 프로세서하이퍼스레딩 기술과 같은 기술을 통해 운영 체제가 인식하는 프로세서의 수를 나타낸다.물리 프로세서실제로 존재하는 코어의 수를 나타낸다.활용스레드 풀 크기 결정시스템의 논리 프로세서 수를 기반으로 스레드 풀의 크기를 동적으로 결정할 수 있다.병렬 작업 최적화데이터 병렬 처리를 최적화할 때 사용할 스레드의 수를 조정할 수 있다.시스템 정보 제공애플리케이션에서 시스템의 프로세서 개수를 사용자에게 표시하거나 로그에 기록할 ..

24.07.30 C#, 배치 파일과 도스 명령어, 게임 서버

C#TryGetValue 메서드에서 Dictionary와 Tuple 함께 사용TryGetValue 메서드Dictionary 클래스의 메서드로, 키를 사용해 값을 안전하게 가져오려 할 때 사용한다.형식 : dictionary.TryGetValue(key, out value)((a,b) out c) 매개변수(a, b): 키(key)로 사용되는 튜플이다.out c: 찾은 값을 저장할 변수이다.장점복합 키를 사용할 수 있어 다차원 데이터를 효율적으로 표현할 수 있다.튜플을 사용함으로써 코드가 더 명확해질 수 있다.주의사항튜플을 키로 사용할 때는 모든 요소가 정확히 일치해야 한다.성능을 고려해야 할 경우, 복잡한 튜플 키의 사용은 주의가 필요할 수 있다.String.IsNullOrWhiteSpace(String)..

24.07.29 C#, 게임 서버

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

24.07.26 C#

C#AsEnumerable MethodLINQ 쿼리는 IEnumerable 또는 IQueryable 인터페이스를 구현하는 데이터 원본에서 작동한다. DataTable 클래스는 이 인터페이스를 구현하지 않기 때문에 직접 LINQ 쿼리를 사용할 수 없다.AsEnumerable 메서드를 사용하여 Datatable을 IEnumerable로 변환할 수 있다. 변환된 객체는 원본 DataTable에 바인딩 된다. 따라서 AsEnumerable를 여러 번 호출해도 모두 같은 원본 DataTable에 바인딩된 독립적인 쿼리 가능한 객체를 반환한다.DataTable을 LINQ 쿼리의 원본으로 사용하려면 AsEnumerable 메서드를 사용하여 IEnumerable로 변환해야 한다. 이렇게 변환된 객체는 원본 DataTa..

24.07.25 C#

C#Out 매개변수 한정자out 키워드를 사용하면 변수가 참조로 전달이 된다.out 키워드를 사용한 매개변수는 함수 내부에서 무조건 값을 세팅해주어야 한다.프로퍼티(=속성)는 변수가 아니므로 out 매개변수로 전달할 수 없다.참조https://blockdmask.tistory.com/606 [C#] out 매개변수 한정자 설명 및 예제 (out 키워드)안녕하세요. BlockDMask입니다. 지난 시간에 ref 키워드 포스팅에서 call by value, call by reference에 대해서 배우고 in 키워드에 대해서도 배워봤습니다. 오늘은 C#에서 매개변수를 넘길 때 붙여줄 수 있는blockdmask.tistory.com UsingC# Using문 사용법 2가지지시문상단에 using을 사용하여 im..

728x90