본문 바로가기
반응형

c#128

C# 대리자(Delegate)에 대해서 대리자(Delegate)란? 특정 매개 변수 목록과 반환 형식이 있는 매서드에 대한 참조를 나타내는 형식 대리자를 인스턴스화할 때 호환되는 매개변수 및 반환 형식을 가지는 모든 메서드와 연결할 수 있다. 대리자(Delegate)의 속성 대리자는 C++ 함수 포인터와 유사하지만 C++ 함수 포인터와 달리 멤버 함수에 대해 완전히 객체 지향이다. delegate는 인스턴스 및 메서드를 모두 캡슐화한다. 대리자를 통해 메서드를 매개 변수로 전달할 수 있다. 대리자를 사용하여 콜백 메서드를 정의할 수 있다. 여러 대리자를 연결할 수 있다. 예를 들어 단일 이벤트에 대해 여러 메서드를 호출 할 수 있따. 메서드는 대리자 형식과 정확히 일치하지 않아도 된다. 자세한 내용은 대리자의 가변성 사용을 참조 람다 식은 인.. 2023. 3. 13.
Elo를 적용해서 레이팅 포인트 계산하는 예제 예상 승률을 계산하는 공식 여기서 400은 매직 넘버로 각자의 상황에 따라서 조절이 가능한 값이다. 보통 K 상수라고 불리운다. LiveRating을 계산하는 공식 예시 코드 double myK = 400; // 매직 넘버 K 상수 double e = (oppositeScore - myScore) / myK; double winRate = 1 / (Math.Pow(10, e) + 1); var winRateMin = 0.0; var winRateMax = 0.0; // winRate 최소값이 0.0이 아니면 최소값으로 보정해준다 if (winRateMin != 0.0) { winRate = Math.Max(winRateMin, winRate); } // winRate 최대값이 0.0이 아니면 최대값으로 .. 2023. 3. 13.
C# 상속 관련 키워드 정리 상속 관련 키워드 일반 클래스 (class) 추상 클래스 (abstract class) 인터페이스 (interface) 일반 클래스의 경우 class Animal { public void Speak() { Console.WriteLine("I`m Animal."); } } class Dog : Animal { public void Speak() // CS0108 { Console.WriteLine("I`m Dog."); } } class Program { static void Main(string[] args) { var dog = new Dog(); dog.Speak(); // I`m Dog. ((Animal)dog).Speak(); // I`m Animal. } } Speak() 함수를 virtual.. 2023. 2. 27.
C# 숫자 서식 지정자(Number Format Specifier) 표준 출력 형식의 문법 {n,w:tp} 예시 : {0,10:N2} 키워드 명칭 n 인자 Argument w 출력 범위 Width t 데이타 타입 Data Type p 정확도 Precision decimal val = 1234.5678M; string s = string.Format("{0,10:N2}", val); // 출력: " 1,234.57" Console.WriteLine(s); {0,10:N2} : 첫 번째 인자인 val을 받아서 전체 넓이 10으로 앞의 공백 포함 10자리 표현하고 N(Numberic) 형식으로 표현된다. 소수점 이하는 2자리까지 표시한다. 표준 숫자 서식 문자열 (Standard numeric format strings) static void Main(string[] args.. 2023. 2. 21.
메모리 구조(Memory Structure)에 대해서 메모리 구조우리가 exe 파일을 실행하면 운영체제는 프로그램에 정의된 명령어(코드)를 바탕으로 메모리에 프로세스를 적재한다.해당 프로세스를 위한 Code, Data, Heap, Stack 영역이 생성된다. 메모리 구조코드 영역데이터 영역힙 영역스택 영역 코드 영역 (Code)소스코드가 기계어 형태로 저장된다CPU가 저장된 명령어를 프로그램 카운터에 의해 하나씩 가져가 처리하게 된다.프로그램 시작부터 종료까지 메모리에 있게 된다.컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장된다. 데이터 영역 (Data)전역변수, static 변수가 저장된다.프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 해제된다.실행 도중 변수 값이 변경될 수 있으니 Read-Writ.. 2023. 2. 17.
C# 커맨드 라인(CommandLine) 파싱 라이브러리 소개 커맨드 라인 라이브러리 소개 보통 툴이나 프로그램을 만들면 유아이가 별도로 없다면 입력인자로 받아서 여러 처리를 진행하게 됩니다. 이때 있으면 유용한 라이브러리가 커맨드라인 파싱 라이브러리입니다. 이번에 제가 알게된 라이브러리는 Mono.Options라는 이름의 라이브러리입니다. 라이브러리 링크로 이동 작고 가볍고 생각보다 기능이 많은거같아서 잠깐 써보았는데 벌써 마음에 들었습니다. 거의 대부분의 .Net 플렛폼에서 호환 가능 Full .NET Framework 4.0+ (Client Profile) .NET Core 1.0 .NET Standard 1.6+ Portable Class Libraries (Profile 259) 설치 방법 비주얼 스튜디오 누겟(Nuget)으로 설치 혹은 PM> Instal.. 2023. 2. 17.